我正在学习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/