标签:
一、运算符的优先级与结合性
| 
 运算符优先级与结合性  | 
|||
| 
 优先级  | 
 运算符类型  | 
 运算符  | 
 结合性  | 
| 
 1  | 
 括号、成员运算符  | 
 () , [] , -> , .  | 
 左结合  | 
| 
 2  | 
 单目运算符  | 
 ! , ~ , ++ , -- , +(正号) , -(负号) , *(取内容) , &(取地址) , sizeof  | 
 右结合  | 
| 
 3  | 
 乘除取余运算符  | 
 *, / , %  | 
 左结合  | 
| 
 4  | 
 加减运算符  | 
 + , -  | 
 左结合  | 
| 
 5  | 
 移位运算符  | 
 <<(左移) , >>(右移)  | 
 左结合  | 
| 
 6  | 
 关系运算符  | 
 < , <= , > , >=  | 
 左结合  | 
| 
 7  | 
 等与不等运算符  | 
 == , !=  | 
 左结合  | 
| 
 8  | 
 按位与运算符  | 
 &  | 
 左结合  | 
| 
 9  | 
 按位异或运算符  | 
 ^  | 
 左结合  | 
| 
 10  | 
 按位或运算符  | 
 |  | 
 左结合  | 
| 
 11  | 
 逻辑与运算符  | 
 &&  | 
 左结合  | 
| 
 12  | 
 逻辑或运算符  | 
 ||  | 
 左结合  | 
| 
 13  | 
 条件运算符  | 
 ?:  | 
 左结合  | 
| 
 14  | 
 赋值运算符  | 
 = , += , -= , *= , /= , &= , |= , <<= , >>=  | 
 右结合  | 
| 
 15  | 
 逗号运算符  | 
 ,  | 
 左结合  | 
二、自增与自减
1、a++(--)
a首先参与表达式的运算,最后自加(减)。例如int a=1,b=2,c=0;c=(a++)+b;运行结果为c==3,a==2,b==2;
  2、(--)++

a
a先自加(减),然后参与表达式的计算。例如上面的例子,运行结果为c==4,a==2,b==2;
三、sizeof
sizeof是个运算不,而不是函数,其功能是以字节为单位给出其操作数的存储大小。它有两种语法格式:
①sizeof(表达式) 或 sizeof 表达式
②sizeof(数据类型)
sizeof不能用于函数类型、位字段类型或不完全类型(具有未知存储大小的数据类型,如未知存储大小的数组、未知内容的结构或联合体、void类型等)
例:(vs的结果)
sizeof(1.5f)等价于sizeof(float)结果为4
sizeof(1.0)等价于sizeof(double)结果为8
sizeof 1等价于sizeof(int)结果为4
sizeof ‘a‘等价于sizeof(char)结果为1
四、基本类型转换
1、隐式转换
按照优先级(优先级高的优先完成转换)把低级类型转换为高级类型(数据类型保值精度更强),再进行运算。
2、强制转换
强制类型转换的格式:
(类型名)(表达式)或(类型名)表达式。
强制类型转换是将所需变量或表达式的值转换为所需的类型,并不改变原来变量或表达式的类型属性。
标签:
原文地址:http://www.cnblogs.com/nitianbenbendan/p/4387477.html