常用运算符归类
■ 算术运算符:
+(加)、-(减)、*(乘)、/(除)、%(整除求余)、++(自加)、–(自减)
■ 关系运算符:
<(小于)、>(大于)、==(等于)、>=(大于或等于)、<=(小于或等于)、!=(不等于)
■ 逻辑运算符:
&&(逻辑与)、||(逻辑或)、!(逻辑非)
■ 位运算符:
<<(按位左移)、>>(按位右移)、&(按位与)、|(按位或)、^(按位异或)、~(按位取反)
■ 赋值运算符:(=号及其扩展赋值运算符)
■ 条件运算符:(?:)
■ 逗号运算符:(,)
■ 指针运算符:(*)
■ 引用运算符和地址运算符:(&)
■ 求字节数运算符:(sizeof)
■ 强制类型转换运算符:((类型) 或 类型())
■ 成员运算符:(.)
■ 指向成员的运算符:(->)
■ 下标运算符:([])
■ 其他运算符:(如函数调用运算符())
注意事项
- 自动转换
- 若参与运算的两个参数类型不同,则先转换成同一类型,然后再进行运算;
- 按照数据长度增加的方向进行(即:由 少字节类型 向 多字节类型 转换),以保证精度不丢失;
- 所有的浮点运算都是以双精度进行的,即使仅含 float 单精度量运算的表达式,也要先转换成 double 类型,再作运算;
- char 类型 和 short 类型参与运算时,必须先转换成 int 类型,也就是说最小的运算整形单位是 int;
- 在赋值运算中,赋值号两边量的数据类型不同时,赋值号右边量的类型将转换为左边量的类型(右随左变)。如果右边的数据类型的长度比左边长时,将丢失一部分数据,这样会降低精度,例如:int x = 2.5;
- 强制转换
举例
int x = 2; float y = 3.6; x = (int)y; y = float(x);
- 自加++
x++是先输出x的值在进行自加,而++x是先自加然后在输出x的值 。
int x = 2;
int y = x++;
int z = ++y;
比如上述代码,int y = x++; 执行之后,x的值为3,y的值为2;int z = ++y; 执行完之后,y的值是3,z的值也是3。