我已经知道使用方括号[]将取消引用指针.因此,当new int给出一个地址时,如果这段代码没有给你存储在该地址的值作为括号deference那个内存空间:
cout << new int[3];
Run Code Online (Sandbox Code Playgroud)
我已经知道使用方括号[]将取消引用指针
像C++中的许多其他东西一样,[]在不同的上下文中使用具有不同的含义.
在上下文中new int[3],它不会取消引用指针.它为3 ints 的数组分配内存并返回指向该内存的指针.
这条线
cout << new int[3];
Run Code Online (Sandbox Code Playgroud)
相当于
int* ptr = new int[3];
cout << ptr;
Run Code Online (Sandbox Code Playgroud)
如果要打印其中一个值,请使用:
int* ptr = new int[3];
cout << ptr[0];
Run Code Online (Sandbox Code Playgroud)
你可以使用:
cout << (new int[3])[0];
Run Code Online (Sandbox Code Playgroud)
但是你的程序会有内存泄漏.