main() { int a=2, b=2; if(a==b==2) printf("%d%d\n",a+(a==b==2),b); }
请问一下,这个程序运行后会输出什么?
没有结果
什么也不输出
main() { int a=2, b=2; printf("%d%d\n",a+(a==b==2),b); }
那这样呢?
输出22
原因: 主要的问题集中在 a+(a==b==2) 首先 C语言要先算括号里面的,因为括号里面碰到了两个==,按照从左到右的原则先算a==b的值,因为a和b都是2,所以a==b的值为1, 然后 再用这个1和后面的2进行==运算。很明显,小学生都看得出来:1不等于2,所以1==2的值为0。
所以(a==b==2)的值就是0啦。a+0自然也还等于a
高手!!我试了,神vLinux飘飘
说的对!