关于C风格字符串和string初始化
#include<string>#include<iostream>
#include<vector>
//#include<iterator>
using namespace std;
int main(){
string s = "lin";
char s1[] = "lin";
cout << sizeof(s) << endl;
cout << sizeof(s1) << endl;
cout << s.size() << endl;
return 0;
}
为什么输出一个是8,一个是4呢。
还有s的长度不应该是4吗,还有最后一个空字符'\0'?
回答
std::string类包含指针和长度等信息,字符串存储在指针所指向的内存中。
sizeof不会计算类指针所指向的内存数据大小。
以上是 关于C风格字符串和string初始化 的全部内容, 来源链接: utcz.com/a/57602.html