我是新來的C++,並有缺乏瞭解爲什麼這個代碼工作得很好:C++:傳遞字符串字面類型爲const char *將字符串參數
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 *。至少自動i =「bla」;表明,我的類型是「const char *」。爲什麼可以將它傳遞給GetString-Function,因爲函數需要一個字符串而不是一個const char *?
字符串文字的類型爲const char(&)[N]',但由於C無法將數組複製到局部變量,所以'auto'無論如何都會產生本地的'const char *'。 –