一个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?
请大家详细说一下哈
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里面的表达式是一个逗号运算符组成的,一个逗号表达式的值取决于最后一个变量的值,这个值为一就执行,否则不执行.