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/12/26 05:07:54
C语言结果inta=5,b=6,c=7,d=8,m=2,n=2;(m=a>b)&&(n=c>d);printf("%d",n);为什么n=2?不是0?C语言结果inta=5,b=6,c=7,d=8,m
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的值没有改变
这个并且和或的关系的时候,会产生短路.