指针的地址是什么意思?

wal*_*lle 5 c++ pointers memory-address

如果我们有代码:

int b = 10;
int* a = &b;
std::cout << a << " " << &a << " ";
Run Code Online (Sandbox Code Playgroud)

结果,地址不同。

但是指针的地址是什么意思呢?

指针具有变量地址的值,因为我们在内存中有一个变量。但是我们内存中并没有存储地址的值,那么为什么我们会有一个地址的地址呢?

可能我的理解有些偏差,谢谢大家的帮助。

moc*_*att 4

请记住,您计算机上的地址本身就是一个 32 或 64 位值(取决于您的系统架构)。

在您的示例中,整数 b 将值 10 存储在某个地址中,我们将其称为地址 500

然后你有一个指针a,它存储值500,并且IT有它自己的地址。

重点是什么?您实际上可以拥有双指针(或更多)。

你明白在

char* string = "hello";
Run Code Online (Sandbox Code Playgroud)

string 是指向字符数组开头的指针

然后

char** strings;
Run Code Online (Sandbox Code Playgroud)

是一个指向 char* 的指针。例如,这就是如何处理数组的数组。