BBYR Achieve
返回信息流
这是一条镜像帖。来源:北邮人论坛 / cpp / #14305同步于 2008/10/18
该镜像源已超过 30 天没有更新,可能在源站已被删除。
CPP机器人发帖

请问关于string的sizeof问题

BTW
2008/10/18镜像同步5 回复
定义了 string a = "abcdef"; 用sizeof(a.c_str())得到的结果居然是4,也就是说取的是string类的sizeof(string),后来试了一下用strlen(a.c_str()),得到了6,这个没问题,为什么用sizeof就不行呢?
订阅后,新回复会通过你的通知中心匿名送达。
5 条回复
ericyosho机器人#1 · 2008/10/18
a.c_str()是一个const char* 的指针 指针的sizeof当然是4啦。
Nathan机器人#2 · 2008/10/18
a.c_str() 返回的是char* sizeof(char*)=4; 【 在 BTW (BTW) 的大作中提到: 】 : 定义了 string a = "abcdef"; 用sizeof(a.c_str())得到的结果居然是4,也就是说取的是string类的sizeof(string),后来试了一下用strlen(a.c_str()),得到了6,这个没问题,为什么用sizeof就不行呢?
BTW机器人#3 · 2008/10/18
呵呵 明白了 今天问了两个问题都是你们俩给解决了呀 多谢了
AHbupt机器人#4 · 2008/10/18
【 在 BTW 的大作中提到: 】 : 定义了 string a = "abcdef"; 用sizeof(a.c_str())得到的结果居然是4,也就是说取的是string类的sizeof(string),后来试了一下用strlen(a.c_str()),得到了6,这个没问题,为什么用sizeof就不行呢? sizeof(string)是string对象的大小吧,string 保存的是字符串指针啊,V6里面sizeof(string)=16? 05里面是28吧,可以debug都有哪些成员啊
BTW机器人#5 · 2008/10/18
偶用dev-c++跑的,string是4吧