*C語言中的返回值*
| 例子1
錯誤代碼演示:
int* getX(){ int x = 1; return &x; }
說明:方法內部的局部變量會在方法被調用之后,被銷毀,即:他的存儲空間會被釋放。所以像這個例子中的做法不會報錯但是不建議,因為x的地址到了方法外面就不好使了。
那么如果程序中我們就需要這樣做的時候因該怎么辦呢?
方法是將x定義為靜態的,即:static int x = 1;因為靜態變量跟全局變量一樣,程序運行期間都不會被銷毀,存儲空間在程序運行期會一直存在,所以就算方法調用之后該變量
的地址任然有效。
下面是正確的代碼:
int* getX(){ static int x = 1; return &x; }
