前几天复习C++看到下面注释的语句
char *p=NULL;
p=new char[20]; //为变量请求内存
对“为变量请求内存”这句话不是很认同
char *p=NULL; 此时p是存储在栈上,通过cout<<sizeof(p);可以发现p占4个字节的内存大小。
所以 p=new char[20];应该是“在堆中申请20个char类型而且地址连续的内存空间,然后返回首地址给p”。
指针存放的是地址,指针只是一个变量。而地址就是内存中用于数据存取的基本单位。
前几天复习C++看到下面注释的语句
char *p=NULL;
p=new char[20]; //为变量请求内存
对“为变量请求内存”这句话不是很认同
char *p=NULL; 此时p是存储在栈上,通过cout<<sizeof(p);可以发现p占4个字节的内存大小。
所以 p=new char[20];应该是“在堆中申请20个char类型而且地址连续的内存空间,然后返回首地址给p”。
指针存放的是地址,指针只是一个变量。而地址就是内存中用于数据存取的基本单位。
3万+