【发布时间】:2023-03-19 04:37:01
【问题描述】:
我试图用 C++ 中的指针做一些实验,我确实有点理解优先级的概念,但是下面的程序在我的脑海中混杂在一起,无法理解
代码:
#include <iostream>
using namespace std;
int main() {
int x = 9;
int* ptr = &x;
cout << "The value of x is " << x << endl << "The value of ptr is " << ptr << endl << *ptr << endl << (*ptr)++ << endl << (*ptr)++ << endl << (*ptr)++ << endl;
return 0;
}
在这个程序中给 x 的初始值为 9,我希望编译器给我 x 的值为 9,然后使用指针递增它,所以我希望答案为 9,Address,9 ,10,11 ,12 但我在每个编译器中得到的答案是 x 的值是 12 而其余的就像这样 12,Address,11,10,9 请帮助我理解这是 C++ 的新手
【问题讨论】:
-
使用
++(*ptr)而不是(*ptr)++来达到你想要的结果。++x递增x的值,然后返回新的递增值,而x++递增但返回以前的值。根据您的问题,您希望拥有++x的行为。
标签: c++ pointers increment operator-precedence decrement