Указатель как аргумент функции по значению
Указатель, будучи переданным аргументом функции, передается, как обычные переменные, по значению. Убедиться в этом можно с помощью кода, представленного в следующем коде.
Основу кода составляет функция test(), аргументом которой является целочисленный указатель (аргумент объявлен как int *n). В результате
выполнения функции на экран выводится адрес аргумента функции (адрес получаем через инструкцию &n). Адрес аргумента - это указатель на указатель. Таким образом, при вызове функции на экране появляется сообщение с адресом переменной, которая реально обрабатывается функцией. В главном методе программы с единичным значением инициализируется целочисленная переменная n. Кроме этого объявляется указатель р на целочисленную переменную и этой переменной в качестве значения присваивается адрес переменной n. Переменная-указатель p передается аргументом функции test() и, кроме этого, на экран выводится адрес переменной р (инструкция &р).
#includeusing namespace std; void test(int *n){ cout << "Address: " << &n << "\n"; } int main(){ int n=1; int *p; p=&n; test(p); cout << "Address: " << &p << "\n"; return 0; }