Can references refer to invalid location in C++?

http://www.geeksforgeeks.org/g-fact-25/

In C++, Reference variables are safer than pointers because reference variables must be initialized and they cannot be changed to refer to something else once they are initialized. But there are exceptions where we can have invalid references.

1) Reference to value at uninitialized pointer.

  int *ptr;
  int &ref = *ptr;  // Reference to value at some random memory location

2) Reference to a local variable is returned.

int& fun()
{
   int a = 10;
   return a;
}

Once fun() returns, the space allocated to it on stack frame will be taken back. So the reference to a local variable will not be valid.


 

posted @ 2015-09-22 18:24  lyleslie  阅读(181)  评论(0编辑  收藏  举报