Опять же, я наткнулся на какое-то упражнение, в котором я не могу понять некоторые основные линии, которые сказали, что я не могу понять, как некоторые вещи работают. Я знаю указатели, но иногда мне кажется, что у меня все еще нет базового знания.Указатели как аргументы функции
В чем смысл использования указателей в следующем примере (в аргументах функции и сравнении данных строкового типа с данными типа символа, как указано в функции с именем: 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