#include<stdio.h>
int &f()
{
int i=0;
int &j=i;
return j;
}
int g()
{
int j=20;
return j;
}
int main(int argc, char* argv[])
{
int &ri=f();
int rj=g();
printf("ri=%d\trj=%d\n",ri,rj,1,2,3,4,5,6);
int &gi=f();
int gj=g();
printf("gi=%d\tgj=%d\n",gi,gj);
return 0;
}
如上述程式段,請問為什么第一個printf在buider c++6.0中ri=4?謝謝
uj5u.com熱心網友回復:
int &f(){
int i=0;
int &j=i;
return j; //回傳一個區域變數的參考,是無效的,引發的結局未知。
}
int &ri=f(); //這里 的 ri 的值是不確定的。因為參考已經無效。
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/108661.html
標籤:基礎類
