C语言运算逗号问题
void main(){
int a = 2, b = 4, c = 6, x, y;
y = (x=a+b), (a+c);
printf("y=%d, x=%d\n", y, x);
}
看视频教程上这种情况y应该是最后那组赋值上去,我测试的时候怎么y是赋值符号后最左边那组的值呢?
y = 5, (a+c), (x=a+b), 3; 按教程上说像这个打印出来y应该是3吧,可是我打印出来是5呢
不知道什么地方理解错了,请指教,谢谢
各位前辈这不算问题吗 1.逗号运算符的优先级是很低的, y = (x=a+b), (a+c);相当于 (y=(x=a+b)) , (a+c);所以肯定左边那组
2.一样的问题 y = 5, (a+c), (x=a+b), 3; 相当于 (y = 5), (a+c), (x=a+b), 3; 所以y肯定是5
y =( 5, (a+c), (x=a+b), 3); 这样就ok 了 楼上说对:lol::lol::lol: 楼上正解:shock: 孩子,跟我走、 发表于 2013-12-27 20:21 static/image/common/back.gif
1.逗号运算符的优先级是很低的, y = (x=a+b), (a+c);相当于 (y=(x=a+b)) , (a+c);所以肯定左边那组
2 ...
谢谢您的回答
页:
[1]