C++中运算符优先级的问题

2024-12-30 16:20:59
推荐回答(2个)
回答1:

假定数组是 int y[]={1,2,3,4,5};
指针是 int *symbol=y; int x=222;
语句 *(symbol++)=x; 因为是后缀++, 表达式里不自增,故计算分2步走,(1_1) *(symbol)=x;
(1_2) symbol=symbol+1; symbol指向 &y[1]。
语句 *symbol++=x; ++优先级高于 *, 所以类似上面,后缀++, 表达式里不自增,故计算分2步走,(2_1) *symbol=x
(2_2) symbol=symbol+1; symbol指向 &y[1]。
这样,两者效果一样。

回答2:

是一样的。 *(symbol++)等价于 *symbol++。