千古难解的C程序!!
我是按鱼哥的写的为什么y值附出来的不应该是10吗??怎么还是6 呀!求解呀#include <stdio.h>
int main()
{
int a=2,b=4,c=6,x,y;
y = (x=a+b),(b+c);
printf("%d,%d\n",y,x);
return 0;
}
赋值运算符优先级,大于逗号运算符,先y = (x=a+b), 我也是菜鸟,不知道对不对
兄台,这样才对,y = ((x=a+b),(b+c));这样才算是一个逗号表达式 , y = (x=a+b),(b+c);这个他只是执行了前半段语句,至于为什么不报错,是因为编译器把这个整条语句看成了一个逗号表示式了
在外面再加个括号就不等于6了 学习了 。。谢谢 格式天下 发表于 2013-10-17 21:54 static/image/common/back.gif
兄台,这样才对,y = ((x=a+b),(b+c));这样才算是一个逗号表达式 , y = (x=a+b),(b+c);这个他只是 ...
谢谢你了 你说的很对!! devotedtoc 发表于 2013-10-17 22:22 static/image/common/back.gif
在外面再加个括号就不等于6了
谢谢你了 你说的很对!!. 路过看一看= =! 原来如此啊 来看看…… 看来好心人真是多啊。 歧义,不要再纠结了,实际上没有这样编程的 我勒个去 逗号表达式 没多少实际用处不建议你纠结他 C语言里面的运算都是从右到左的
学到姿势了~ y = (x=a+b),(b+c); //这是一个逗号表达式
y = ((x=a+b),(b+c)); //这是一个赋值表达式
两者要分清
页:
[1]