一个C语言的简单问题关于if(x,y)

来源:百度知道 编辑:UC知道 时间:2024/06/10 19:18:59
if(a,b,c,d)是什么意思?比如
if(2,3,4,0)x+=1;
是不是意味着不执行x+=1?
if(2,3,0,4)x+=1;
是不是意味着执行x+=1?
请大家详细说一下哈

逗号运算符, 是分别计算每个表达式的值,

然后, 整个(a,b,c,d)也被看作一个表达式, 他的值等于用逗号分隔的最后一个表达式的值

所以(2,3,4,0)值为0, (2,3,0,4)值为4, 然后if条件值为0不执行, 不为0就执行, 因此出现你说的那种结果

如果还是不懂, 运行以下程序:

#include<stdio.h>
void main()
{
printf("%d", (1, 2, 3, 4));
}

里面的1, 2, 3, 4可以自己改着试一试

逗号运算符

是的

是的啊,因为逗号运算符的值是最右面的式子的值,所以当你运行if(2,3,4,0)的时候就是和if(0)的作用是一样的,所以就不执行下面的式子了,当然当最右面的式子的值不等于零的时候就相当于if(1),所以就顺着往下执行了

逗号运算符, 是分别计算每个表达式的值, 然后输出最后一个的,如果不是0,就是真,执行x+=1;反之,不执行

if里面的表达式是一个逗号运算符组成的,一个逗号表达式的值取决于最后一个变量的值,这个值为一就执行,否则不执行.