关于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'?
关于C风格字符串和string初始化

回答

std::string类包含指针和长度等信息,字符串存储在指针所指向的内存中。

sizeof不会计算类指针所指向的内存数据大小。

以上是 关于C风格字符串和string初始化 的全部内容, 来源链接: utcz.com/a/57602.html

回到顶部