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

在栈中和堆中实例化对象名分别表示什么含义?

比如:Car car; Car *p = new Car();

  1. 对于堆得方式:用一个指针p指向在堆中申请的内存首地址,p指针是在栈中申请的内存还是在堆中申请?

  2. 对于栈的方式:car是表示一个对象的整块内存,还是向p一样存储的是对象的首地址?

    我想了一下普通变量的申请方式,比如 int i; 意思就是申请了一个四个字节大小的空间,吧这四个字节大小的空间命名为i,所以car是不是就是申请了一个Car大小的内存,把这一整块空间命名为car?

正在回答

1 回答

Car car; 

Car *p = new Car ();

cout <<"&car:"<< &car <<" sizeof(&car):"<< sizeof(&car) <<" sizeof(car):"<< sizeof(car) << endl;

cout <<"&p:"<< &p <<" p:"<< p <<" sizeof(&p):"<< sizeof(&p) <<" sizeof(p):"<< sizeof(p) <<" sizeof(*p):"<< sizeof(*p)<< endl;

&car:0018FEF0 sizeof(&car):4 sizeof(car):32

&p:0018FEE4 p:01F95D58 sizeof(&p):4 sizeof(p):4 sizeof(*p):32


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

珠穆拉玛峰上的光 提问者

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

举报

0/150
提交
取消
C++远征之封装篇(上)
  • 参与学习       103381    人
  • 解答问题       732    个

封装--面向对象的基石,本教程力求帮助小伙伴们即学即会

进入课程

在栈中和堆中实例化对象名分别表示什么含义?

我要回答 关注问题
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号