#include<iostream>
#include<string>
using std::string;
using std::cout;
using std::endl;
int main()
{
string s;
cout << s.size() << endl;
cout << s[0] << endl; //output empty line
return 0;
}
由于 s 是一个空字符串,为什么它有 s [0] 元素?在我看来,它应该得到一个运行时错误。这是一个约定还是其他什么?
答案 0 :(得分:4)
您可以访问s[n]
,其中n
的长度为s
,这是一项特殊规则。结果是一个空字符(即由初始化字符类型的值产生的值)并尝试修改它会导致未定义的行为。