c语言小问题,急呀

[复制链接]
查看11 | 回复5 | 2011-9-19 01:16:39 | 显示全部楼层 |阅读模式
inta=5,b;b=a*--a;为什么b为5?
回复

使用道具 举报

千问 | 2011-9-19 01:16:39 | 显示全部楼层
b应该是25,--和*是同一级运算符,但是--的优先级高,结合方向是从右到左的,先--后,最后*,所以结果是25~~
回复

使用道具 举报

千问 | 2011-9-19 01:16:39 | 显示全部楼层
为什么我编译出来,b是25?
回复

使用道具 举报

千问 | 2011-9-19 01:16:39 | 显示全部楼层
怎么会,b应该是25才对呀。不应该是5的,你确定没看错。先--a,然后—a,最后a*a,所以结果为25.
回复

使用道具 举报

千问 | 2011-9-19 01:16:39 | 显示全部楼层
晕,我编译出来怎么是30!?先a,得到6,a=6然后--a,得到5,a=56*5=30
回复

使用道具 举报

千问 | 2011-9-19 01:16:39 | 显示全部楼层
如果只是学习,要明白环境与编译器是影响其结果的。如果是做工程,我没见过这么写的,即使是Linux内核也不这么写吧!
回复

使用道具 举报

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

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行