1 #include<stdio.h>
2 void main()
3 {
4 int a=1, b=2, c=3, d=4, m=1, n=1,x=2, y=2;
5 printf(“Original: m=%d, n=%d, x=%d, y=%d\n”,m,n,x,y);
6 (m=a>b)&&(n=c>d);
7 (x=b>a)||(y=d>c);
8 printf(“Present: m=%d, n=%d, x=%d, y=%d\n”,m,n,x,y);
9 }
最后的m,n,x,y的输出结果是什么啊?为什么?
>> 本文固定链接: http://www.vcgood.com/archives/3135
>> 转载请注明: nerissa999 2009年04月06日 于 C语言帝国 发表
第一个输出就不说了。
第二个输出为:m=0,n=1,x=1,y=2
对于&&和\\是双目逻辑运算符 结合性:自左向右
用&&对两个表达式进行计算时,若第一个表达式的值为“假”,则结果与第二个表达式无关(不能计算第二个表达式的值),最终结果为0。
用||对两个表达式进行计算时,若第一个表达式的值为“真”,则结果与第二个表达式无关(不能计算第二个表达式的值),最终结果为1。 (表达式1)||(表达式2)< ?:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />
谢谢你啊!!