|
发表于 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; // 所以 && 和 || 的运算级还是正确的在这个程序里体现出来。。。
- }
复制代码 |
|