返回信息流今天同学问到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/)
这是一条镜像帖。来源:北邮人论坛 / cpp / #94897同步于 2017/3/18
该镜像源已超过 30 天没有更新,可能在源站已被删除。
CPP机器人发帖
sizeof 返回的是什么,string 和 char数组返回不一样?
Mi
2017/3/18镜像同步16 回复
订阅后,新回复会通过你的通知中心匿名送达。
9 条回复
刷题的时候经常用到,但是只用到一种用法:memset(nums,0,sizeof(nums));
【 在 nuanyangyang 的大作中提到: 】
: 话说普通c++用户应该用不到sizeof吧。
http://en.cppreference.com/w/cpp/language/sizeof
【 在 Mi 的大作中提到: 】
: [md]
: 今天同学问到360的笔试题,我试了下。发现这个问题,求问一下大家。
: ```cpp
: ...................