C语言赋值问题
inta=2,b=3,c=4,d=5;intm=2,n=2;a=(m=a>b)&&(n=c>d)+5;printf("%d,%d",n,a);为什么n的值是2而不是0呢求...
int a=2,b=3,c=4,d=5; int m=2,n=2; a=(m=a > b)&&(n=c > d)+5; printf("%d, %d ",n,a);为什么n的值是2 而不是0呢求大神解答
展开
3个回答
展开全部
int a=2,b=3,c=4,d=5;
int m=2,n=2;
a=(m=a > b)&&(n=c > d)+5;
printf("%d, %d ",n,a);
因为前面的(m=a>b)的结果是false 那与运算 前面的运算结果如果是false 就直接返回false了 后面的条件运算不会被执行
int m=2,n=2;
a=(m=a > b)&&(n=c > d)+5;
printf("%d, %d ",n,a);
因为前面的(m=a>b)的结果是false 那与运算 前面的运算结果如果是false 就直接返回false了 后面的条件运算不会被执行
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
a正确显然,
b正确n2/n3直接截断小数部分返回一个整数,
c正确,赋值语句是左优先级的,这个语句先把j赋给i,再把i赋给k,
d是不正确的,和c类似,不过第一次赋值,b+c=1,赋值语句的左侧是变量,不能是一个表达式,
b正确n2/n3直接截断小数部分返回一个整数,
c正确,赋值语句是左优先级的,这个语句先把j赋给i,再把i赋给k,
d是不正确的,和c类似,不过第一次赋值,b+c=1,赋值语句的左侧是变量,不能是一个表达式,
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询