在栈中和堆中实例化对象名分别表示什么含义?
比如:Car car; Car *p = new Car();
对于堆得方式:用一个指针p指向在堆中申请的内存首地址,p指针是在栈中申请的内存还是在堆中申请?
对于栈的方式:car是表示一个对象的整块内存,还是向p一样存储的是对象的首地址?
我想了一下普通变量的申请方式,比如 int i; 意思就是申请了一个四个字节大小的空间,吧这四个字节大小的空间命名为i,所以car是不是就是申请了一个Car大小的内存,把这一整块空间命名为car?
比如:Car car; Car *p = new Car();
对于堆得方式:用一个指针p指向在堆中申请的内存首地址,p指针是在栈中申请的内存还是在堆中申请?
对于栈的方式:car是表示一个对象的整块内存,还是向p一样存储的是对象的首地址?
我想了一下普通变量的申请方式,比如 int i; 意思就是申请了一个四个字节大小的空间,吧这四个字节大小的空间命名为i,所以car是不是就是申请了一个Car大小的内存,把这一整块空间命名为car?
2016-08-16
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
举报