В чем разница между следующими двумя определениями функций?
Объявление функции:
void fun(int* p);
Определение функции 1:
void fun (int* p){
p += 1;
}
Определение функции 1:
void fun (*p){
p += 1;
}
Проходя int
по указателю:
void fun (int* p) ;
void fun (int* p)
{
*p += 1 ; // Add 1 to the value pointed by p.
}
Проходя int
от ссылка:
void fun (int& p) ;
void fun (int& p)
{
p += 1 ; // Add 1 to p.
}
Есть только один правильное определение функции, первое, которое вы дали:
Определение функции 1:
void fun (int* p) {
p += 1;
}
Также вы, вероятно, имели в виду:
(*p) += 1;