标签:div include logs amp ++i col code 读取 class
#include <stdio.h> int main(void) { int i = 1, j = 1, k = 1; printf("%d\n", ++i || ++j && ++k); printf("%d %d %d\n", i, j, k); }
运行结果为:
1 2 1 1
左边算子优先计算 ++i = 2 被下一个 printf 读取,|| 符号只会储存左边的运算值,右边新计算的值被遗弃。
如果程序变为:
#include <stdio.h> int main(void) { int i = 1, j = 1, k = 1; printf("%d\n", ++j && ++k); printf("%d %d %d\n", i, j, k); }
可以看到符号 && 两边的值都被储存,结果为
1 1 2 2
可见,符号 || 只会储存左边的值,而 && 会储存符号两边的值。
标签:div include logs amp ++i col code 读取 class
原文地址:http://www.cnblogs.com/jack-zander/p/7449331.html