c语言++问题

[复制链接]
查看11 | 回复3 | 2008-11-4 22:19:30 | 显示全部楼层 |阅读模式
当c中++和+在一起是怎么判定到底是+还是++。如下:
a+++b为什么是(a++)+b而不是a+(++b)呢
我是说系统为什么认为一定第一个是++,而不是+呢

回复

使用道具 举报

千问 | 2008-11-4 22:19:30 | 显示全部楼层
这就是看运算符的优先级。++是单目运算符,自右向左运算。其优先级高于+;你可以记一下:()、[]、->是一级运算符;
!、~、++、--、&是二级运算符;
+,-,*,/是三级运算符;一级是最高的优先级,以下类推。运算符的运算顺序一般是这样的:首先是括号,然后是逻辑非,然后是算术运算符,再然后是移位运算(>> <<);再者是关系运算(》=,《=,!=);然后是条件,最后是赋值。...
回复

使用道具 举报

千问 | 2008-11-4 22:19:30 | 显示全部楼层
看运算优先级 这个是(a++)+b 因为++的优先级是在+前面的。亲身试验,其实你可以自己编程试一下,先运行这个,再看是a变了还是b变了,不就成了,不用什么都问人的,自己解决的问题印象更深刻...
回复

使用道具 举报

千问 | 2008-11-4 22:19:30 | 显示全部楼层
这是因为:1 计算的顺序问题
2 优先级是这样的1,2 合起来就成了这种结果了!...
回复

使用道具 举报

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

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行