Как сохранить адрес, сохраненный в указателе, передаваемом в качестве аргумента, согласованным во всех вызовах функций - PullRequest
1 голос
/ 16 апреля 2020

Я могу передать любой аргумент по ссылке, и изменения этой переменной в любом из вызовов функций отражаются и в других вызовах функций.

Аналогично, если я хочу, чтобы адрес, сохраненный в указателе, был согласованным по всей все вызовы функций таковы, что они ведут себя так, как будто мы передаем указатель по ссылке.

1 Ответ

1 голос
/ 16 апреля 2020

Вы также можете передавать указатели по ссылке, как это предлагается в комментарии.

#include <iostream>
void f(int * & p) {
  std::cout << p << std::endl;
}
int main() {
  int x;
  int * p = &x;
  std::cout << p << std::endl; // This prints the same...
  f(p);                        // ... as this.
}
...