адрес оператора и оператор указателя

В чем разница между следующими двумя определениями функций?

Объявление функции:

void fun(int* p);

Определение функции 1:

             void fun (int* p){
p += 1;
}

Определение функции 1:

                 void fun (*p){
p += 1;
}

-6

Решение

Проходя 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

Другие решения

Есть только один правильное определение функции, первое, которое вы дали:

Определение функции 1:

 void fun (int* p) {
p += 1;
}

Также вы, вероятно, имели в виду:

    (*p) += 1;
2