c++ 中关于运算符优先级的问题 以及与或问题详解

1  关于&& ,|| 

    因为&& 和 || 运算符 都具有短路线。所以运算符后面

     int  a = 0 ;

     0&&  a++ ;   //a的结果还是 0 ,因为前面已经是0 ,所以后面就不需要判断了,

     1 || a++ ;     //  a的结果还是 0  ,因为前面已经是 1,所以后面就不需判断了,

    int a=0;
    int i = 1 && ++a;  
    printf("%d\n",a); //1
    printf("%d\n",i); //  1

 

  int i = 1 &&  a++;  // i =0;

   这就说明++的运算符优先级比 && 高

   


 2  按位与(&),按位或(|),按位异或(^);

     &的运算规则是  1& 1 ;// 1 ;       1& 0 ;// 0 ;                      0& 0 ;// 0 ; 

     | 的运算规则是    1 | 1 ;  // 1  ;      1 | 0 ;  // 1  ;                  0| 0 ;  // 0  ;

    ^ 的运算规则是     1^1   // 0   ;        1^0 ;//  1  ;                  0 ^ 0 ;// 0  ;     按位异或的运算规则是相同为0  ,否则为 1     

    各运算符的特殊作用:

   <1> & 运算

           1 > 把一个数设置为0

            2>  提取某些数位。比如高八位和低八位

   <2 > | 运算

             将一个数置一,或者这个数的某些位置的数置1

    <3 > 异或运算 

            可以将两个变量中的数交换。

 

3 ~  按按位取反

         把一个数字的每个数都变成相反的数。

    

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值