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

[复制链接]
查看11 | 回复4 | 2011-2-19 18:22:44 | 显示全部楼层 |阅读模式
代码编译上没问题啊,VC++6.0运行通过是不是结果不对啊---------------------------------------------------------------没用过Turbo C,不是很懂,但是windows 1.0是不是古老了一点啊,应该是LZ编译器问题吧...
回复

使用道具 举报

千问 | 2011-2-19 18:22:44 | 显示全部楼层
在TC和VC下都能编译通过,而且输出为10a=(b=4)+(c=6);()优先级最高,所以先处理()里面的表达式,这样b=4,c=6,a=4+6.如果不加(),那么a=b+4+c=6将是错误的赋值语句,因为+优先=,所以先处理b+4+c,这样等号左边出现常量4是非法的。...
回复

使用道具 举报

千问 | 2011-2-19 18:22:44 | 显示全部楼层
确实没有错,我在后面加上getch(),立刻就读出来了10...
回复

使用道具 举报

千问 | 2011-2-19 18:22:44 | 显示全部楼层
程序没有错呀,我编译可以过,可以正常执行...
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行