//2.So,references once initialized can not refer to other.
//2.1 Reference to reference not allowed.No error but. it will start pointing to the first variable
//3. reference arithmatic not allowed.No error in reference arithmatic but changes reflected in referant not in reference.
//4.Reference to array allowed.//int (&r);
//5.Array of reference not allowed because we can not find the address of array. ultimately refer to first variable.
//6.Unlike pointers,refernce are automatically gets dereferenced.No need to use *(value at address).
//7.Unlike pointers, reference arithmatic like increment will increase the referant's value and not the address
//8.Reference are used to pass by reference to get the changes reflected in calling function.
//9.Pass by reference avoids copy of large value when structure like data are passed as arguments.
//10. Its unsafe to return local variable by value because variable goes out of scope once conrol returns out of the function defintion.
//Solution is us local static variable or dynamic memory allocation so that scope of the variable will through out the program.
using namespace std;
//reference nothing but constant pointer means once initialized can not be reinitialized.
int *const h=&s;//s is const pointer so can not hold another address
//h=&m;//error: assignment of read-only variable ‘h’
int &j=i;// j is reference to a
//reference to refernce not allowed. No error but points to the first variable
int &k=j;//reference to reference no error but//point 2.1
//pointer arithmatic are not allowed. no error but changes gets reflected in first variable
//referece can not be reinitialized but direct values can be given
//pass by reference to get the values reflected in calling function
cout<<x<<" " <<y<<endl;//20,10
//if return type is reference then function call can be made in left side
cout<<"gv="<<gv<<endl;//5//instead of returned reference 100, f() is assigned to 5
//problem of local ovariable returning by value
cout<<"d="<<d<<endl;//Garbage, because return value went out of scope in definition itself.
void swap(int x, int y)
//return by reference
//problem of returning local variable by value
int ff(int t)
return lv;//returning local variable by value.
}//scope of lv over here
You may also like.