我正在用 C++ 读一本书,我正在做一些测试,因为我不明白一些东西,当我尝试打印这 3 行时,我期待所有 3 行都不同。第一个,指针在内存中的位置,第二个,指针存储的地址,第三个是指针存储的地址处的值。但相反,前两个是相同的:
cout <<&arey <<"\n";
cout <<arey <<"\n";
cout <<*arey <<"\n";
Run Code Online (Sandbox Code Playgroud)
输出:
0x6afee8
0x6afee8
0
Run Code Online (Sandbox Code Playgroud)
有人可以解释为什么我读到数组的名称是指向数组的指针,所以如果它是一个指针,它应该有自己的内存地址吗?
我已经知道使用方括号[]将取消引用指针.因此,当new int给出一个地址时,如果这段代码没有给你存储在该地址的值作为括号deference那个内存空间:
cout << new int[3];
Run Code Online (Sandbox Code Playgroud)