C++警告warning C4700: 使用了未初始化的局部变量“s”

代码如下,问题:在使用string s;程序不会提示错误,运行也没有问题,但是我改成char s的话就会出现一条警告:warning C4700: 使用了未初始化的局部变量“s”;而且调试的时候,到了s=temp.s+s;也会跳错。这是为什么呢?难道在用string s时就会有默认值吗?
想知道这是不是C++的某种机制,或者是我理解的不够?

string s默认s为空字符串(构造函数默认的),当然可以。char局部变量的值未初始化是随机数,因此是不允许的。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2014-12-04
string 是个类类型,有构造函数。

追问

那char就不是类型吗?