为了账号安全,请及时绑定邮箱和手机立即绑定

代码语言问题

请问 int *p=new int;     *p=20;     这个 *p表示的是什么含义?

正在回答

2 回答

*号 用在不同的地方有不一样的含义。

第一个 *p : 在声明(定义)时表示星号后面的变量是指针类型,也就是 p 是指向int的指针。

第二个 *p : 表示将 p 这个指针“解引用”,得到的是 p 所指的对象(也就是new出来的int对象)。 第二个语句就是把20赋值给了p所指的对象。

1 回复 有任何疑惑可以回复我~
#1

竹渚溪520 提问者

非常感谢!
2015-10-17 回复 有任何疑惑可以回复我~

int *p 表示 *p 是一个 int 类型的变量,p是指针

p通过new int 在内存上(堆中)分配了一块空间,这块空间的大小是4个字节(int的长度),p指向这块空间的首地址,*p = 20 表示 这块地址赋值为20,如何访问这块地址?通过p

这块空间在堆上手动分配,所以需要手动释放。如果没有释放,p重新指向了别处。那这块地址就变成不可访问了,但别人也无法使用它。

2 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
C++远征之离港篇
  • 参与学习       122700    人
  • 解答问题       474    个

C++扫清通往面向对象的最后一道障碍,将所有知识点融会贯通

进入课程

代码语言问题

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信