| 
 | 
 
 
发表于 2014-6-14 13:53:26
|
显示全部楼层
 
 
 
- #include "stdio.h"
 
 - int main( void )
 
 - {
 
 -         int a, b, c;
 
  
-         a = b = c = 1;
 
  
-         ++a || --b && ++c;
 
 -         printf("%d %d %d\n", a, b, c );
 
  
-         1 && ++a || --b && ++c;
 
 -         printf("%d %d %d\n", a, b, c );
 
 -         
 
 -         ++a && ++a || --b && ++c;
 
 -         printf("%d %d %d\n", a, b, c );  //  运算符 || 前面的值要完全算出来
 
 -         
 
 -         0 && ++a || --b && ++c;
 
 -         printf("%d %d %d\n", a, b, c );  //  如果是零就算后面的部分,这里就是优先级的体现,(++a) 没有跟 (--b) 作或运算
 
 -                                                                          // 因为 (++a) 为非零,但输出 b 值为零,c值不变,可见是 || 后面的是一个整体运算
 
 -         
 
 -         0 && ++a || ++b && ++c;
 
 -         printf("%d %d %d\n", a, b, c );  //  && 运算符也是同样的处理,前面是非零就继续算后面的值
 
 -         return 0;   // 所以 && 和 || 的运算级还是正确的在这个程序里体现出来。。。
 
 - }
 
  复制代码 |   
 
 
 
 |