再一次,我偶然發現了一些練習,我無法理解一些基本的線條,也就是說我無法真正理解某些事情是如何工作的。我知道指針,但有時在我看來,我仍然缺乏一些基本的知識。指針作爲函數參數
以下示例中使用指針的要點是什麼(在函數參數中,並將字符串類型數據與char類型數據進行比較,因爲它在名爲InsertPerson的函數中指出)。
讓我這樣說吧,我們已經得到了下面的代碼:
struct SPerson
{
string name;
string surname;
int age;
};
priority_queue<SPerson, vector<SPerson>, FunkyFunctor> SuperPQ;
// ** THIS IS THE BIT OF CODE WHICH I'M HAVING PROBLEM WITH
void InsertPerson(SuperPQ &kp, const char *name, const char *surname, int age)
{
SPerson newPerson;
newPerson.name = name;
newPerson.surname = surname;
newPerson.age = age;
kp.push(newPerson);
}
int main(void)
{
SuperPQ superQUEUE;
InsertPerson(superQUEUE, "Jeremy", "Clarkson", 54);
}
爲什麼需要指針作爲函數的參數叫做InsertPerson功能,爲什麼我不能使用這些變量,而不是自己的指針?
預先感謝您的禮貌和任何容易理解的解釋;)
乾杯!
你可以使用'const std :: string&name,const std :: string&surname' – Creris 2014-10-17 22:22:11