前几天复习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个地址连续的存储空间(数组)”。
指针存放的是地址,指针只是一个变量!