address-of和指针地址有什么区别?

don*_*ote 0 c++

普通指针地址和指针"地址"有什么区别?

#include<iostream>

using namespace std;

int main()
{
    int * a= new int[1];
    cout<<a<<endl;
    cout<<&a<<endl;
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

这打印出两个不同的值:

0x8b1a438
0xffbb6b8c
Run Code Online (Sandbox Code Playgroud)

fre*_*low 5

一张图片通常价值千言万语:

           +------------+
0x08b1a438 |         42 | int[1]
           +------------+
                  ^
                  |
                  |
           +------|-----+
0xffbb6b8c | 0x08b1a438 | int * a
           +------------+
Run Code Online (Sandbox Code Playgroud)

如您所见,打印a打印内容a,并打印&a打印其地址.