Я мало знаю о C++, и мне нужно иметь дело с функцией на данный момент. Что это значит в прототипе функции?Что такое * & параметр
void myFunc(int &size, signed char *&array);
Я мало знаю о C++, и мне нужно иметь дело с функцией на данный момент. Что это значит в прототипе функции?Что такое * & параметр
void myFunc(int &size, signed char *&array);
Это ссылка на указатель. Таким образом, вы не передаете копию указателя на функцию, вместо этого вы передаете ссылку , что означает, что любые изменения этого значения в функции фактически повлияют на исходный указатель, который вы передали в качестве аргумента.
Это означает, что array
является reference до signed char *
, то есть указатель.
думать об этом таким образом:
(int) &size;
(char*) &array;
Если вы голосуете, прокомментируйте причину понижения ... – anishsane
*&
является ссылкой на указатель
Вы допускаете, чтобы позвонить myFunc
так:
int size;
signed char *p;
myFunc(size, p);
Обычно передать ссылку на указатель к функции, поэтому можно изменить указатель внутри функции.
'typedef' может упростить чтение:' typedef char * PCHAR; ', тогда он станет' PCHAR & array' – LihO
[так много дубликатов] (http://stackoverflow.com/search?q=%5Bc % 2B% 2B% 5D +% 22 *% 26% 22) –
@LihO Использование 'typedef' здесь скрывает информацию, которая не должна быть скрыта (тот факт, что' array' является ссылкой на указатель). –