void foo(int &x)
передает ссылку на целое число.Это параметр ввода / вывода и может использоваться как обычное целое число в функции.Значение передается обратно вызывающей стороне.
void food(int *x)
передает указатель на целое число.Это параметр ввода / вывода, но он используется как указатель и требует разыменования (например, *x = 100;
).Вам также необходимо убедиться, что оно не равно нулю.
void foo(int **x)
передает указатель на указатель на целое число.Это входной / выходной параметр целочисленного указателя типа.Используйте это, если вы хотите изменить значение целой точки (например, *x = &m_myInt;
).
void foo(int *&x)
передает ссылку на указатель на целое число.Как и выше, но нет необходимости разыменовывать переменную указателя (например, x = &m_myInt;
).
Надеюсь, что это имеет смысл.Я бы рекомендовал использовать typedefs, чтобы упростить использование указателей и ссылочных символов.