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

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

比如: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++远征之封装篇(上)
  • 参与学习       103410    人
  • 解答问题       701    个

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

进入课程

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

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