C语言的表达式这样写是合法的吗?a=(b=4)+(c=6);

2025-06-26 18:40:31
推荐回答(4个)
回答1:

代码编译上没问题啊,VC++6.0运行通过

是不是结果不对啊

---------------------------------------------------------------

没用过Turbo C,不是很懂,但是windows 1.0是不是古老了一点啊,应该是LZ编译器问题吧

回答2:

在TC和VC下都能编译通过,而且输出为10
a=(b=4)+(c=6);
()优先级最高,所以先处理()里面的表达式,这样b=4,c=6,a=4+6.
如果不加(),那么a=b+4+c=6将是错误的赋值语句,因为+优先=,所以先处理b+4+c,这样等号左边出现常量4是非法的。

回答3:

确实没有错,我在后面加上getch(),立刻就读出来了10

回答4:

程序没有错呀,我编译可以过,可以正常执行