我知道new关键字返回指针,所以返回类型是void*.我的愚蠢问题是为什么new必须返回void*而不是void&?意味着当new他们创建的对象可以使用&运算符的地址返回该对象的地址时.
我知道指针和引用之间的区别.但最后我们使用指针而不是引用.请清除我的困惑谢谢.
小智 5
New返回用于在内存中分配空间的任何类型的指针,而不是void*
auto p1 = new int[5]; // returns a pointer to an int pointing to the 1st element
auto p2 = new short[5]; // returns a pointer to a short pointing to the 1st element
Run Code Online (Sandbox Code Playgroud)
引用只能分配一次,裸指针可以分配几次.您可以删除内存并分配更多内存并将其分配给同一指针.这是主要的区别.
delete[] p1;
p1 = new int[20];
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2501 次 |
| 最近记录: |