我仍在努力理解 *p、&p 和 p 之间的区别。根据我的理解,* 可以被认为是“指向的值”,而 & 可以被认为是“地址”。换句话说,* 保存值,而 & 保存地址。如果这是真的,那么 *p 和 p 之间的区别是什么?难道 p 不是像 *p 一样保存某物的值吗?
最佳答案
*
运算符用于间接寻址。间接意味着 p
中的值被解释为内存地址,并加载该地址处的值。 p
是p
的值,而*p
是存储在p
指向的内存位置的值。当你想间接访问一个整数i
的值时,你可以让一个整数指针指向它(int *p = &i
)并使用那个指针修改i
的值是间接的(*p = 10
)。
关于C++ - *p vs &p vs p,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9661293/