对c++中new的理解

前几天复习C++教程看到下面的语句
char *p=NULL;    //初始化为NULL的指针
p=new char[20];    //为变量请求内存

乍一看注释,好像是正确的,但是仔细一想,又发现是有问题的
“为变量请求内存”,为p请求?


char *p=NULL;    此时p是存储在栈上,通过cout<<sizeof(p);可以发现p占4个字节的内存大小。
所以 p=new char[20];应该是“为指针p指向的地址 申请一块20个地址连续的存储空间(数组)”。
指针存放的是地址,指针只是一个变量!

猜你喜欢

转载自blog.csdn.net/c_shell_python/article/details/82491242