837654886 发表于 2012-7-7 21:35:54

关于甲鱼视屏3.19例题(GCC编译)

本帖最后由 837654886 于 2012-7-7 22:14 编辑


#include"stdio.h"
main()
{
int a,b,c,x,y;
a=2;
b=4;
c=6;
y=(x=a+b),(b+c);
printf("y=%d,x=%d\n",y,x);
}



这里的y为什么不等于10
结果:
y=6,x=6

九霄云外 发表于 2012-7-7 21:35:55

y=(x=a+b),(b+c);这个语句应该这样写
y=((x=a+b),(b+c));
这是因为赋值的优先等级要大于逗号运算符,所以加上个括号!

chao_prince 发表于 2012-7-7 22:00:27

本帖最后由 chao_prince 于 2012-7-7 22:01 编辑

{:5_94:}楼主把问题讲清楚点啊。。我都不晓得你讲的是啥问题。。貌似我看不到图。。直接用文字讲吧。。

837654886 发表于 2012-7-7 22:17:13

chao_prince 发表于 2012-7-7 22:00 static/image/common/back.gif
楼主把问题讲清楚点啊。。我都不晓得你讲的是啥问题。。貌似我看不到图。。直接用文字讲吧。。

{:5_109:}改好了

837654886 发表于 2012-7-7 22:28:39

九霄云外 发表于 2012-7-7 22:27 static/image/common/back.gif
y=(x=a+b),(b+c);这个语句应该这样写
y=((x=a+b),(b+c));
这是因为赋值的优先等级要大于逗号运算符,所以 ...

原来如此{:5_106:}

丿夏夜灬彬刂 发表于 2012-7-8 07:54:43

我看见很多人都是纠结在这种问题上了:o

c-man 发表于 2012-7-10 11:18:57

原来是这样,当时我纠结了:L

183560656 发表于 2014-1-5 10:52:44

看看不解释
页: [1]
查看完整版本: 关于甲鱼视屏3.19例题(GCC编译)