由于我目前正在学习C++的指针,因此我想知道语法。因此,当我想在对象上使用指针时,不必为了访问类属性而取消引用它。当我只想在简单变量上使用指针时,必须使用*更改其值。

那么为什么我不必为对象使用*?因为这样,我想我只是更改内存地址。

目的:

int age = 20;
User John(age);
User *ptrUser = &John;

ptrUser->printAge(); // 20 (why no *ptrUser->printAge()  ??? )
cout << ptrUser // 0x123456...

变量:
int a = 10;
int *ptrA = &a;
*ptrA = 20;
cout << a // 20

非常感谢你!

最佳答案

您必须取消引用指针,->运算符只是用于取消引用和成员访问的语法糖:

代替

ptrUser->printAge();

你可以写
(*ptrUser).printAge();

关于c++ - 关于对象和变量的指针c++,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/42719855/

10-09 23:02