C語言中的返回值


              *C語言中的返回值* 

| 例子1

錯誤代碼演示:

int* getX(){
     int x = 1;
        
     return &x;
}

說明:方法內部的局部變量會在方法被調用之后,被銷毀,即:他的存儲空間會被釋放。所以像這個例子中的做法不會報錯但是不建議,因為x的地址到了方法外面就不好使了。

那么如果程序中我們就需要這樣做的時候因該怎么辦呢?

方法是將x定義為靜態的,即:static int x = 1;因為靜態變量跟全局變量一樣,程序運行期間都不會被銷毀,存儲空間在程序運行期會一直存在,所以就算方法調用之后該變量

的地址任然有效。

下面是正確的代碼:

int* getX(){
    static int x = 1;

    return &x;
}

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM