首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

C语言优先级有关问题

2012-08-02 
C语言优先级问题问题,++a 和 a++一个是先++再引用,一个是先引用,再++。ba++等价于ba a++但单目运算符

C语言优先级问题
问题,++a 和 a++ 一个是先++再引用,一个是先引用,再++。

b=a++; 等价于 b=a; a++;  
但单目运算符 ++ 的优先级高于赋值运算符 = ,为什么不是这样: 而不是 b = (a++) ;

为何?


[解决办法]
b = a++;
就是 b = (a++);
但是 a++ 这个表达是返回的是++ 之前的 a; 所以 b 是等于 ++ 之前的 a 的。
[解决办法]
所以运算依然是先 ++;然后在 =。

计算顺序:
auto t = a;
a = a + 1;
b = t; // a ++ 返回的是++ 之前的临时变量。所以 a++ 是不可引用的。

热点排行