Which of the following lines correctly declare a function which processes/modifies an input pointer?
void Init(int**  ptr);  //1
void Init(int*   ptr);  //2
void Init(int*& ptr);  //3
void Init(int&* ptr);  //4
Explanation
  • 1. Correct. The function accepts a pointer to pointer, which, when dereferenced, returns the original pointer we want to modify.
  • 2. Wrong. The function creates a copy of the input variable, in this case - a copy of the input pointer, hence the original input pointer is not modified.
  • 3. There are no pointers to references in C++.
  • 4. Correct. The function accepts a reference to original pointer at input, and is able to modify it.

Следи за CodeGalaxy

Мобильное приложение Beta

Get it on Google Play
Обратная Связь
Cosmo
Зарегистрируйся сейчас
или Подпишись на будущие тесты