例如string s="abc";
s[0]是'a'这是可以的。
那如果在s没有被初始化之前就对单个字符赋值难道是不可以的吗?
比如:string s;
s[0]='a';
这样编译器会提示string下标越界?只能先初始化吗?
需要初始化,如果没有初始化,s还没有分配空间,你访问下标就越界了。
你直接string s="abc";系统为s分配了空间,string字符串才可以看成char数组,
如果直接声明string s;
s[0]='a';
系统没有为字符串s分配空间,s=null,没法看成char数组吧。
string s;
s[0] = 'd';
如果看 s 的空间大小。。s有 15个字节的空间。。。
你如果对string对象进行赋值过,而且保证没有越界的话,是可以这样处理string对象的