回复 6楼 TGM316750432
优先级是一样的情况下
运算符 是有执行循序的(左到右 或是 右到左)
所以你要理解 *(指针运算符), 和++
这两个 的结合性是 怎样的。
后 就是 理解 s.top++
和 ++s.top
有什么区别 再是 前面带与 * 相结合的情况
1. *和++ 二者 的优先级是一样的(c语言是如此 相信c++也应该是 因为 是向下兼容的)
2. 二者都是自右到左所以1.* s.top ++和* ++ s.top都是先做 ++ 的 所以做完这两个操作后
加的都只是地址值 然后 * 解引用 所以 不可能是你的那个变量值自增1 ,它增加的只是变量地址的值
3.然后 理解 前++ (++s.top) 和 后++ (s.top++),前++ 可以理解成对本条语句的变量(自增变量)值有增加,
后++ 可以理解成对本条语句的变量值(自增变量)没有影响。
来个列子:
int i = 1;
i++; 此条语句中的i 为1(本条语句)
cout << i<< endl;此时i 为2 (下条语句)
int j = 1;
++j;j为2(本条语句)
cout << j<<endl; (下条语句)
4.最后要理解的 是 语句 的定义。
*s.top++; 是一条语句;
*++s.top; 是一条语句;