美文网首页
c语言——运算符

c语言——运算符

作者: 吴繁飞 | 来源:发表于2019-03-17 09:58 被阅读0次

点这里:https://wenku.baidu.com/view/f3cbe70c90c69ec3d5bb757a?pcf=2&sfr_fb=0

重点: int i =0;
int a=++i:a的值是2,i的值是2
int a=i++:a的值是i,i的值是2,执行完这段话才付值
i++`++i单独使用效果一样,for 循环里面i++,++i效果一样

1.&= 位逻辑与赋值 

2.|= 位逻辑或赋值 

3.^= 位逻辑异或赋值

<--  101010         101010        101010
   & 011100       | 011100      ^ 011100
       ---------   ----------    ----------
        001000         111110        110110-->

4.<<= 左移赋值 
5.>>= 右移赋值
<--0000 1100 -- 10进制12
左移一位 0001 1000 -- 10进制24
右移一位 0000 0110 -- 10进制6*-->

a=(b>0)?b:-b;
当b>0时,a=b;当b不大于0时,a=-b;这就是条件表达式。其实上面的意思就是把b的绝对值赋值给a。 
假设b=2,c=7,d=5,
a1=(++b,c--,d+3);
a2=++b,c--,d+3;
对于第一行代码,有三个表达式,用逗号分开,所以最终的值应该是最后一个表达式的值,也就是d+3,为8,所以a=8。对于第二行代码,那么也是有三个表达式,这时的三个表达式为a2=++b、c--、d+3,(这是因为赋值运算符比逗号运算符优先级高)所以最终表达式的值虽然也为8,但a2=3。

下面是C语言中所使用的运算符的优先级和结合性: 
优先级 运算符 结合性 
(最高) () [] -> . 自左向右 
! ~ ++ -- + - * & sizeof 自右向左 
* / % 自左向右 
+ - 自左向右 
<< >> 自左向右 
< <= > >= 自左向右 
== != 自左向右 
& 自左向右 
^ 自左向右 
| 自左向右 
&& 自左向右 
|| 自左向右 
?: 自右向左 
= += -= *= /= %= &= ^= |= <<= >>= 自右向左 
(最低) 
, 自左向右

相关文章

网友评论

      本文标题:c语言——运算符

      本文链接:https://www.haomeiwen.com/subject/sqvymqtx.html