注册 登录
编程论坛 C++教室

sizeof的问题

happynight 发布于 2010-04-21 09:30, 641 次点击
#include<string>
string *p;
cout<<sizeof(*p)<<endl;                 //16
p=0;
cout<<sizeof(*p)<<endl;                 //16
按照理解p只是一个指针,并没有分配内存,特别是空指针的情况
sizeof怎么会返回16的
5 回复
#2
hahayezhe2010-04-21 12:30
你定义的是一个string类对象的指针
#3
happynight2010-04-21 13:42
以下是引用hahayezhe在2010-4-21 12:30:27的发言:

你定义的是一个string类对象的指针
那这个又怎么解释
p=0;
cout<<sizeof(*p)<<endl;

即使换成int也是一样
#4
xinhang2010-04-21 13:51
这说明你的编译器是以16字节来存储地址的。
#5
happynight2010-04-21 15:10
以下是引用xinhang在2010-4-21 13:51:08的发言:

这说明你的编译器是以16字节来存储地址的。
不是吧
cout<<sizeof(p)<<endl;      //4
#6
lgnu2010-04-21 22:06
你的是不是64位版本?
1