C语言结果 int a=5,b=6,c=7,d=8,m=2,n=2; (m=a>b)&&(n=c>d); printf("%d",n); 为什么n=2?不是0?
来源:学生作业帮助网 编辑:作业帮 时间:2024/11/15 21:32:36
xJQ_e=^t;x a`[
X3ôO^
3ӅOުPk[9/Gi|2e8qIm.E is
0'xOn7wʲZ?I
䝞/BF
+4@V̩I~'T wrsj~fPg˔t)̮85znt?'A
C语言结果 int a=5,b=6,c=7,d=8,m=2,n=2; (m=a>b)&&(n=c>d); printf("%d",n); 为什么n=2?不是0?
C语言结果 int a=5,b=6,c=7,d=8,m=2,n=2; (m=a>b)&&(n=c>d); printf("%d",n); 为什么n=2?不是0?
C语言结果 int a=5,b=6,c=7,d=8,m=2,n=2; (m=a>b)&&(n=c>d); printf("%d",n); 为什么n=2?不是0?
这个是短路的概念、
因为m=a>b这个为假的,所以值为0,0并且任何一个值都为假,所以电脑会跳过后面的语句.
所以n=c>d这条语句是没有做的.
所以表达式为0;
然而N的值没有改变
这个并且和或的关系的时候,会产生短路.