What are references in C++?
- Reference variables are aliases to other variables. Any changes to the original variable or the alias (reference variable) result in change to the same memory location.
- Reference variables must always be initialized.
- When pass by reference is done to functions unlike pass by value a new copy of the variable is not created. This is very useful when big objects are passed as class members.
- The other alternative is to use call by address using pointers. This involves de-referencing which may not look elegant and clean. References solve this problem.
Basic usage of reference variables
#include <iostream> using namespace std; int main() { int i = 100; int &j = i; cout << "i=" << i << endl; cout << "j=" << j << endl; j += 100; cout << "i=" << i << endl; cout << "j=" << j << endl; cout << "Address of i=" << &i << endl; cout << "Address of j=" << &j << endl; }OUTPUT:
i=100 j=100 i=200 j=200 Address of i=0012FF88 Address of j=0012FF88
Pass by references to functions
#include <iostream> using namespace std; // Pass arguments by reference static void MySwap(int& i, int &j) { int temp; temp = i; i = j; j = temp; } int main() { int i = 10, j = 20; cout << i << " " << j << endl; MySwap(i,j); cout << i << " " << j << endl; }OUTPUT:
10 20 20 10
0 comments:
Post a Comment