C/C++における関数呼び出し終了後の変数解放に関する質問

939 ワード

質問:
#include int* fa();void main(){int *p=fa();printf("%d",*p);}int* fa(){int i=97;return &i;}関数呼び出しが終了すると、関数で定義されたローカル変数がすべて解放される、すなわち関数fa()の変数iが呼び出し終了後に解放されると本で述べていたのを覚えていますが、なぜここで出力関数fa()のローカル変数値を参照できるのでしょうか.
回答:
         ,     。
fa() ,i , 。
, 。
&i 。
/ ,


*p 。

, &i 。

, , , 。