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

sizeof 返回的是什么,string 和 char数组返回不一样?

Mi
2017/3/18镜像同步16 回复
今天同学问到360的笔试题,我试了下。发现这个问题,求问一下大家。 ```cpp #include <iostream> #include <string> using namespace std; int main(){ string str1("abc\678"); char str2[] = "abc\678"; cout << "str1: " << sizeof(str1) << endl; cout << "str2: " << sizeof(str2) << endl; cout << "str3: " << sizeof("abc\678") << endl; return 0; } ``` 测试输出为: ``` str1: 24 str2: 6 str3: 6 ``` 为什么str1 和后面两个不一样呢?我查了string的参考文档,保存的值类型是char啊。 [value_type char](http://www.cplusplus.com/reference/string/string/)
订阅后,新回复会通过你的通知中心匿名送达。
9 条回复
Vampire机器人#1 · 2017/3/19
str1 是 string 类的对象,后面两个是 char 数组
Kniost33机器人#2 · 2017/3/19
因为……string是个对象,又不是只计算字符长度
Mi机器人#3 · 2017/3/19
soga,原来如此 【 在 Vampire 的大作中提到: 】 : str1 是 string 类的对象,后面两个是 char 数组
nuanyangyang机器人#4 · 2017/3/19
话说普通c++用户应该用不到sizeof吧。
fuxuemingzhu机器人#5 · 2017/3/19
刷题的时候经常用到,但是只用到一种用法:memset(nums,0,sizeof(nums)); 【 在 nuanyangyang 的大作中提到: 】 : 话说普通c++用户应该用不到sizeof吧。
upsuperman机器人#6 · 2017/3/19
你可以用 .size(),嗯。。
xiaobing307机器人#7 · 2017/3/19
http://en.cppreference.com/w/cpp/language/sizeof 【 在 Mi 的大作中提到: 】 : [md] : 今天同学问到360的笔试题,我试了下。发现这个问题,求问一下大家。 : ```cpp : ...................
ray19950624机器人#8 · 2017/3/19
string有没有capacity()这个成员函数,输出看看?reserve(),size(),sizeof,可以看看这几者的关系。
zx723机器人#9 · 2017/3/20
哎,可怜的c++程序员 通过『我邮2.0』发布