【发布时间】:2012-08-30 00:20:04
【问题描述】:
我是 C++ 新手,不明白为什么这段代码运行良好:
string GetString(string promt)
{
cout << promt << ": ";
string temp;
getline(cin, temp);
return temp;
}
int main()
{
string firstName = GetString("Enter your first name");
string lastName = GetString("Enter your last name");
cout<< "Your Name is: " << firstName << " " << lastName;
cin.ignore();
cin.get();
return 0;
}
像“bla”这样的字符串文字属于 const char* 类型。至少 auto i = "bla";表示 i 的类型为“const char*”。为什么可以将它传递给 GetString-Function,因为该函数需要一个字符串而不是 const char*?
【问题讨论】:
-
字符串字面量的类型为
const char(&)[N],但由于C 不能将数组复制到局部变量,auto无论如何都会生成局部const char*。
标签: c++ string const-char