课程
/后端开发
/C++
/C++远征之离港篇
请问 int *p=new int; *p=20; 这个 *p表示的是什么含义?
2015-10-16
源自:C++远征之离港篇 5-2
正在回答
*号 用在不同的地方有不一样的含义。
第一个 *p : 在声明(定义)时表示星号后面的变量是指针类型,也就是 p 是指向int的指针。
第二个 *p : 表示将 p 这个指针“解引用”,得到的是 p 所指的对象(也就是new出来的int对象)。 第二个语句就是把20赋值给了p所指的对象。
竹渚溪520 提问者
int *p 表示 *p 是一个 int 类型的变量,p是指针
p通过new int 在内存上(堆中)分配了一块空间,这块空间的大小是4个字节(int的长度),p指向这块空间的首地址,*p = 20 表示 这块地址赋值为20,如何访问这块地址?通过p
这块空间在堆上手动分配,所以需要手动释放。如果没有释放,p重新指向了别处。那这块地址就变成不可访问了,但别人也无法使用它。
举报
C++扫清通往面向对象的最后一道障碍,将所有知识点融会贯通