Путаница в C ++

В чем разница между следующими механизмами передачи параметров в C ++?

void foo(int &x) 
void foo(int *x)
void foo(int **x)
void foo(int *&x)

Я хотел бы знать, в каком случае параметр передается по значению или по ссылке.

Ответы на вопрос(2)

Ваш ответ на вопрос