运算符的优先级和结合性
运算符的种类
- 算数运算符
- 算数运算符注意事项
- 如果参与运算的两个操作数皆为整数, 那么结果也为整数
- 如果参与运算的两个操作数其中一个是浮点数, 那么结果一定是浮点数
- 求余运算符, 本质上就是数学的商和余"中的余数
- 求余运算符, 参与运算的两个操作数必须都是整数, 不能包含浮点数
- 求余运算符, 被除数小于除数, 那么结果就是被除数
- 求余运算符, 运算结果的正负性取决于被除数,跟除数无关, 被除数是正数结果就是正数,被除数是负数结果就是负数
- 求余运算符, 被除数为0, 结果为0
- 求余运算符, 除数为0, 没有意义(不要这样写)
- 赋值运算符
- 简单赋值运算符 =
- 复杂赋值运算符 += -= *= /= %= (具有右结合性)(优先级低于算数运算符)
- 自增自减运算符
- 运算符有++和--
- ++ --可以写在变量前面或者后面
- 写在变量前面表示先进行++或--操作在进行运算
- 写在变量后面表示先进行运算在进行++或--操作
- 自增自减运算符注意事项
- 常量和表达式不能进行++ --操作
- 自增自减运算符尽量独立开来写,方便阅读和代码维护
- 千万不要这么写
int num = 10;
int res = ++num + num++;//在不同编译器运行结果不同,这么写就是傻逼
- sizeof运算符
- sizeof运算符计算的是变量所占的内存字节数(int为4,double和float为8,char为1)
- sizeof运算符格式 sizeof(变量/常量/表达式/数据类型) 或者 sizeof 变量/常量/表达式
- sizeof注意点
- sizeof是一个运算符,不是一个函数!不是一个函数!不是一个函数!
- 逗号运算符
- 逗号运算符是用来简化代码的
- 逗号运算符是一个运算符,它是有结果的,结果是最后一个表达式的值
- 逗号运算符的结合性是左结合性
- 关系运算符
- 关系运算符注意事项
- 关系运算符只有真和假,结果只有0和1
- 关系运算符中> >= < <=的优先级比== !=高
- 无论float还是double都有精度问题,要避免使用==判断浮点数是否相等
- 逻辑运算符
- 逻辑运算符有&& || !
- 运算符&&的特点是一假则假
- 运算符||的特点是一真则真
- 运算符!的特点是可以连续飞飞飞飞飞
- 逻辑运算符注意事项
- 运算符&&在条件A为假后不会执行后面的代码
- 运算符||在条件A为真后不会执行后面的代码
int a = 10;
int b = 11;
int num = 2;
int res = (a > b) && (++num > 2);
printf("res = %i",res);//0
printf("num = %i",num);//2 由于a>b为假,所以++num不会被执行
- 三目运算符
- (表达式) ? 语句A : 语句B;
- 表达式成立执行语句A 不成立执行语句B
- 注意事项
- ?和:必须一起使用,单独使用会报错
- 条件运算符的运算优先级低于关系运算符和算术运算符,但高于赋值符
- 条件运算符的结合方向是从右至左
网友评论