凤临天下王妃宠不得:简单的c语言

来源:百度文库 编辑:查人人中国名人网 时间:2024/05/05 01:05:57
int a=5,b=6,c=7,d=8,m=2,n=2
则表达式(m=a>b)&&(n=c>d)运算后,n的值是多么
是不是等于0

为2.

在C语言中,对于与的运算,如果前面的子表达式已经计算为0,那么后面的子表达式就可以不用计算,直接跳过.所以在这个问题中,)(n=c>d)根本没有运算.所以N的值并没有改变. 而M的值为0.

同理,或运算如果有一个子表达式为1,那么后面也不用计算了,最终表达式的值也为1.

更正一下,m=a>b的结果就是0,后面一个表达式被忽略,n的结果不变,为2。刚才以为是问的是“表达式(m=a>b)&&(n=c>d)运算后的值是多么”

n的值还是2。
因为a>b即为5>6为0,根据短路求值,直接可以确定整个表达式(m=a>b)&&(n=c>d)的值为0,n=c>d不参加运算,所以n的值不改变,为初始的2。

是0。