【发布时间】:2021-09-07 14:39:52
【问题描述】:
当我运行这段代码时,无论字符串是什么,结果总是 24。为什么?
#include <bits/stdc++.h>
using namespace std;
int main()
{
string s = "asdccccc";
cout << sizeof(s);
return 0;
}
【问题讨论】:
-
要获取字符串的大小,请使用
cout << s.size();(或cout << s.length();...它们是同义词)。当您执行sizeof(s)时,您获取的不是字符串有效负载的大小,而是拥有有效负载的字符串对象的大小。 -
@Caleth 我应该知道这是重复的,谢谢。
-
如果你使用
#include <string>,你的编译效率会更高,这是一个单一的包含文件版本,不标准的庞然大物bits/stdc++.h。通常,只在代码或标头中包含实际解析符号的标头。