首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

C语言运算符有关问题

2012-10-17 
C语言运算符问题#includestdio.hvoid main(){inta5,b6,c7,d8,m2,n2(mab)&&(ncd) printf(m

C语言运算符问题
#include<stdio.h>
void main()

int a=5,b=6,c=7,d=8,m=2,n=2;
 (m=a>b)&&(n=c>d) ;
 printf("m=%d n=%d",m,n);
}

为什么结果是0和2

[解决办法]
短路求值 a && b; 如a为false则不计算b
 因为a > b 为假,所以 表达式(m = a > b)为0, m = 0 
所以 (n = c > d)未执行。 所以n没有变,还是2 

热点排行