C语言逗号运算符的问题

2019-07-16 04:56发布

本帖最后由 godiszc 于 2012-8-9 21:43 编辑

书上表达的意思是逗号表达式
表达式1,表达式2,以表达式2的值作为整个逗号表达式的值。
#include<stdio.h>
main()
{
int a=2,b=4,c=6,x,y;
y=(b+c),(x=a+b);
printf("y=%d,x=%d",y,x);
        
}
但是我通过这样的程序验证时候发现 1.jpg

而改变程序变为
#include<stdio.h>main()
{
int a=2,b=4,c=6,x,y;
y=(x=a+b),(b+c);
printf("y=%d,x=%d",y,x);

}
结果为 2.jpg

也就是说逗号表达式是以表达式1的值为结果的。在此想请各位大牛确认下是不是这样的?
(原来是自己理解有误)



        


友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
8条回答
godiszc
1楼-- · 2019-07-16 21:54
云深无迹 发表于 2012-8-9 21:44
逗号运算符结果以最后一个为准,但你的程序中只把(x=a+b)赋值给y,也就是说y的值与(b+c)无关。整个逗号表 ...

是啊,程序本身就有问题,没可比性。
oyl
2楼-- · 2019-07-16 23:50
顶顶。。

一周热门 更多>