我正在学习C ++,并且已经在一本书中找到了:

#include <iostream>
using namespace std;

int main()
{
int Age = 30;
int* pInteger = &Age; // pointer to an int, initialized to &Age

// Displaying the value of pointer
cout << “Integer Age is at: 0x” << hex << pInteger << endl;

return 0;
}


该书说,输出是存储年龄的内存中的地址。

但是这本书没有谈论这个:

*pInteger = &Age;
 pInteger = &Age;


这两个作业有什么区别?

最佳答案

您似乎对这条线感到困惑

int* pInteger = &Age; // pointer to an int, initialized to &Age


此处的*符号将pInteger声明为一个指向int的指针。这被初始化(未分配)到允许的地址,因为年龄是一个整数。

您可以输入

*pInteger = 45;


这将分配给pInteger指向的整数。

您也可以输入

int y = 35;
pInteger = &y;


这将重新分配指针以指向其他位置。

关于c++ - 指针和引用运算符(&),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/14157064/

10-08 22:50