单目运算符

Java基础 3. 运算符

旧街凉风 提交于 2020-01-25 10:46:56
Java基础 3. 运算符 目标 掌握数据类型转换 掌握算术运算符、赋值运算符 掌握逻辑运算符 掌握关系运算符、条件运算符 一、数据类型转换 //Demo1.java public class Demo1 { public static void main(String[] args) { //按照数值非数值分类 //数据类型:数值(整型int 浮点型float、double) //非数值(字符串String,字符char,布尔boolean(true、false)) //按照基本引用数据类型 //引用数据类型String 其他为基本 int num1 = 10; //浮点数默认是double double num2 = 1.0; float num3 = 5.6f; System.out.println(num3); //当表达式中有一个是double类型时。整个结果是double //强制类型转换 double -> int //强制去掉小数部分9.8 -> 8 //会造成精度丢失 int num4 = num1 - (int)num2; System.out.println(num4); //自动类型转换 //int -> double num2 = 100; } } 二、转换规则 自动类型转换规则 规则1. 如果一个操作数为double类型

运算符优先级

别等时光非礼了梦想. 提交于 2020-01-25 03:24:30
优先级 运算符 1 单目运算符 2 算数运算符 3 关系运算符 4 逻辑运算符 5 赋值运算符 逻辑运算符中的顺序: 非>与>或 a||b&&c的结果是a||(b&&c)而不是(a||b)&&c 来源: CSDN 作者: qq_35764106 链接: https://blog.csdn.net/qq_35764106/article/details/104032561

C语言之运算符基础----防备忘

孤人 提交于 2020-01-19 18:57:12
C语言之运算符基础----防备忘 优先级 运算符 备注 结合方向 1 ()、[ ] 、-> 、 . 优先级最高 2 !、 ~ 、++ 、-- 、- 、(类型强转) 、*、&、sizeof ①唯一单目运算符②!逻辑非运算符③~按位取反运算符④*指针运算符 自右至左 3 *、/、% 算数运算符 4 .+、- 算数运算符 5 <<、>> 左、右移运算符 6 <、<=、>、>= 关系运算符 7 ==、!= 关系运算符 8 & 按位与 运算符 9 ^ 按位异或 运算符 两位不同为1,两位相同为0 10 l 按位或 运算符 11 && 逻辑与 运算符 12 l l 逻辑或 运算符 13 ?: 条件运算符 自右至左 14 =、+=、-=、*=、/=、%=、>>=、<<=、&=、^= 赋值运算符 自右至左 13 , 逗号运算符(顺序求值运算符) 简洁的优先级表格【由上往下,优先级降低】 运算符 备注 ()、[ ]、->、 . 括号类的最高 !、~、剩余的全部单目运算符 注意!、~的含义 算符运算符 乘除余 > 加减 左、右移运算符 关系运算符 ==、!= 最低 & 按位与 ^ 按位异或 l 按位或 && 逻辑与 l l 逻辑或 ? : 条件运算符 赋值运算符 逗号运算符 来源: CSDN 作者: 秋山刀名鱼丶 链接: https://blog.csdn.net/qq_26039331

C/C++对运算符重载详解

余生颓废 提交于 2020-01-14 12:27:12
下面来进行这段代码的分析: struct node { //定义一个结构体node(节点) int x; int y; int len; //node中有3个成员变量x,y,len bool operator <( const node &a) const { //重载<操作符。可以对两个node使用<操作符进行比较 return len<a.len; } }; 括号中的const表示参数a对象不会被修改,最后的const表明调用函数对象不会被修改! 想必看到这里对重载运算符算是有一丁点的了解吧,下面看些理论文字,更加清楚的了解关系! Return Top 重载运算符的介绍 C++中预定义的运算符的操作对象只能是基本数据类型。但实际上,对于许多用户自定义类型(例如类),也需要类似的运算操作。这时就必须在C++中重新定义这些运算符,赋予已有运算符新的功能,使它能够用于特定类型执行特定的操作。运算符重载的实质是函数重载,它提供了C++的可扩展性,也是C++最吸引人的特性之一。   运算符重载是通过创建运算符函数实现的,运算符函数定义了重载的运算符将要进行的操作。运算符函数的定义与其他函数的定义类似,惟一的区别是运算符函数的函数名是由关键字operator和其后要重载的运算符符号构成的。运算符函数定义的一般格式如下: <返回类型说明符> operator <运算符符号>(<参数表>) {

Java的运算符

耗尽温柔 提交于 2020-01-11 01:58:13
Java的运算符 运算符的分类 算术运算符 赋值运算符 关系运算符 逻辑运算符 位运算符 其他运算符 运算符的分类 运算符指明对操作数的运算方式。组成表达式的Java操作符有很多种。运算符按照其要求的操作数数目来分,可以有单目运算符、双目运算符和三目运算符,它们分别对应于1个、2个、3个操作数。运算符按其功能来分,有算术运算符、赋值运算符、关系运算符、逻辑运算符、位运算符和其他运算符。 算术运算符 单目: ~ (按位取反)、 ! (取非)、 - (负号运算符)、 ++ (自增)、 -- (自减) 双目: + (加)、 - (减)、 * (乘)、 / (除)、 % (取余) 三目: a > b ? true : false (当 a 大于 b 的时候,为 true,否则为 false;这整个运算符包括一个关系运算符(可以是“ > ”,“ < ”,“ != ”等等),一个“ ? ”,一个“ : ”,冒号前后需要有两个表达式、值或者是对象。) 赋值运算符 = += -= *= /= %= &= ^= |= <<= >>= 关系运算符 关系运算符用于比较两个数值之间的大小,其运算结果为一个逻辑类型(boolean布尔类型)的数值。 等于符号: == 不等于符号: != 大于符号: > 小于符号: < 大于等于符号: >= 小于等于符号: <= 逻辑运算符 与(&&) 对于&来说

C/C++ 复习

末鹿安然 提交于 2020-01-05 04:23:10
本文总结一下C++面试时常遇到的问题。C++面试中,主要涉及的考点有 关键字极其用法,常考的关键字有const, sizeof, typedef, inline, static, extern, new, delete等等 语法问题 类型转换 指针以及指针和引用的区别 面向对象的相关问题,如虚函数机制等 泛型编程的相关问题,如模板和函数的区别等 内存管理,如字节对齐(内存对齐)、动态内存管理、内存泄漏等 编译和链接 实现函数和类 本文不涉及STL的内容,有关STL的内容,会另有一篇文章专门总结。 零、序章 0.1 C++与C的对比 C++有三种编程方式:过程性,面向对象,泛型编程。 C++函数符号由 函数名+参数类型 组成,C只有函数名。所以,C没有函数重载的概念。 C++ 在 C的基础上增加了封装、继承、多态的概念 C++增加了泛型编程 C++增加了异常处理,C没有异常处理 C++增加了bool型 C++允许无名的函数形参(如果这个形参没有被用到的话) C允许main函数调用自己 C++支持默认参数,C不支持 C语言中,局部变量必须在函数开头定义,不允许类似for(int a = 0; ;;)这种定义方法。 C++增加了引用 C允许变长数组,C++不允许 C中函数原型可选,C++中在调用之前必须声明函数原型 C++增加了STL标准模板库来支持数据结构和算法 一

c++中的操作符重载(转)

不羁岁月 提交于 2019-12-28 10:14:45
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 一、什么是操作符重载 操作符重载可以分为两部分:“操作符”和“重载”。说到重载想必都不陌生了吧,这是一种编译时多态,重载实际上可以分为函数重载和操作符重载。运算符重载和函数重载的不同之处在于操作符重载重载的一定是操作符。我们不妨先直观的看一下所谓的操作符重载: #include <iostream> using namespace std; int main() { int a = 2 , b = 3; float c = 2.1f , d = 1.2f; cout<<"a + b = "<<a+b<<endl; cout<<"c + d = "<<c+d<<endl; return 0; } 我们看到操作符“+”完成 float 和 int 两 种类型的加法计算,这就是操作符重载了。这些内置类型的操作符重载已经实现过了,但是如果现在我们自己写过的类也要实现实现类似的加法运算,怎么办呢?? 比如现在现在有这样一个点类point,要实现两个点的相加,结果是横纵坐标都要相加,这时候就需要我们自己写一个操作符重载函数了。 #include <iostream> using namespace std; class point { double x; double y; public: double get_x() {

Python学习笔记——Python起步

被刻印的时光 ゝ 提交于 2019-12-20 14:44:32
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 本章将对 Python 的主要特性做一个快速介绍,这样你就可以借助以前的编程经验识别出熟悉的语言结构,并立刻将 Python 付诸使用。虽然细节内容会在后续的章节中逐一讲解,但是对整体的了解可以让你迅速融入到 Python 中。在Python解释器所有的交互示例中, 你会看到 Python 的主提示符( >>> )和次提示符( ... )。主提示符是解释器告诉你它在等待你输入下一个语句,次提示符告诉你解释器正在等待你输入当前语句的其它部分。Python 有两种主要的方式来完成你的要求:语句和表达式(函数、算术表达式等)。语句使用关键字来组成命令,类似告诉解释器一个命令。你告诉 Python 做什么,它就为你做什么,语句可以有输出,也可以没有输出。表达式没有关键字,它们可以是使用数学运算符构成的算术表达式,也可以是使用括号调用的函数。它们可以接受用户输入,也可以不接受用户输入,有些会有输出,有些则没有。(在 Python 中未指定返回值的函数会自动返回 None, 等价于 NULL) 程序输出,print 语句 有些语言, 比如 C, 通过函数输出数据到屏幕,例如函数 printf()。然而在 Python 和大多数解释执行的脚本语言,使用语句进行输出。很多的 shell 脚本语言使用 echo

C++ 中的运算符重载

我的梦境 提交于 2019-12-17 15:36:19
所谓重载,就是重新赋予新的含义。函数重载就是对一个已有的函数赋予新的含义,使之实现新功能。 运算符也可以重载 ..运算符重载是对已有的运算符赋予多重含义... // 也就是说重载完之后,会根据我们定义的重载函数 自动调用最符合调用的方法使用...比如我们定义的类的重载运算符+. 当我们使用类的对象相加时,会自动调用我们定义的重载...而当我们使用内置的+法运算,比如 int b=5+3; 那么这是还是调用内置的+法运算进行处理 .. C++中预定义的运算符其运算对象只能是基本数据类型,而不适用于用户自定义类型(如类). // 同上,内置的运算符 只能应用于内置的数据类型 ...比如 int char double .等等。 (一) C++不允许用户自己定义新的运算符,只能对已有的C++运算符进行重载。 // 就是说只能重载内置的 + - * / 等运算符,不能自己创造运算符计算。 。 (二) C++允许重载的运算符C++中绝大部分的运算符允许重载. 不能重载的运算符只有5个: (1) 成员访问运算符. (2) 作用域运算符∷ (3) 条件运算符?: (4) 成员指针运算符* (5) 编译预处理命令的开始符号# (三) 重载不能改变运算符运算对象(即操作数)的个数。 // 不能改变运算符运算对象, 比如+法运算符,那么它有两个操作数 ..当我们重载它的时候 也只能有两个操作数 。

C++类或结构作为map的key值

心已入冬 提交于 2019-12-12 20:19:12
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 1.只有重载<的类或者结构才能作为map的key值。 string可以作为key值是因为string重载了< 2.如果不重载<会提示如下错误: error C2676: 二进制“<”: “const C”不定义该运算符或到预定义运算符可接收的类型的转换 3.重载<但是没有实现会提示如下错误: Expression: invalid operator< 比如bool operator < (const C &c) const{return true;} #include < string > #include <map> using namespace std; // 重载<的类或结构才能作为map的key值 class C { public : int i; string str; bool operator < ( const C &c) const { return i < c.i; } }; void main() { map<C, int > mapC; C c0; c0.i = 0 ; c0.str = " str1 " ; mapC.insert(pair<C, int >(c0, 0 )); C c1; c1.i = 1 ; c1.str = " str2 " ; mapC.insert(pair