![]() |
Prerequisite: Pointers vs References in C++. For clear understanding, let’s compare the usage of a “pointer to pointer” VS “Reference to pointer” in some cases. Note: It is allowed to use “pointer to pointer” in both C and C++, but we can use “Reference to pointer” only in C++. Passing pointer to a function If a pointer is passed to a function as a parameter and tried to be modified then the changes made to the pointer does not reflects back outside that function. This is because only a copy of the pointer is passed to the function. It can be said that “pass by pointer” is passing a pointer by value. In most cases, this does not present a problem. But the problem comes when you modify the pointer inside the function. Instead of modifying the variable, you are only modifying a copy of the pointer and the original pointer remains unmodified. Below program illustrate this: CPP
Output:
Passing Pointer to function: Before :23 After :23 Passing “pointer to a pointer” as a parameter to function The above problem can be resolved by passing the address of the pointer to the function instead of a copy of the actual function. For this, the function parameter should accept a “pointer to pointer” as shown in the below program: CPP
Output:
Passing a pointer to a pointer to function Before :23 After :42 How to call a function with “Reference to pointer” parameter? A reference allows called function to modify a local variable of the caller function. For example, consider the following example program where fun() is able to modify local variable x of main(). CPP
Output:
New value of x is 20 Below program shows how to pass a “Reference to a pointer” to a function: CPP
Output:
Passing a Reference to a pointer to function Before :23 After :42 Returning a pointer from a function CPP
Output:
Return a pointer from a function Before :23 After :42 Returning reference from function CPP
Output:
Returning a Reference Before :23 After :42 |
Reffered: https://www.geeksforgeeks.org
C++ |
Related |
---|
![]() |
![]() |
![]() |
![]() |
![]() |
Type: | Geek |
Category: | Coding |
Sub Category: | Tutorial |
Uploaded by: | Admin |
Views: | 8 |