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.

Follow CodeGalaxy

Mobile Beta

Get it on Google Play
Send Feedback
Keep exploring
C++ quizzes
Cosmo
Sign Up Now
or Subscribe for future quizzes