在 c 中,當在函式內部的靜態變數中創建和回傳地址時,它是否與初始化一個簡單的
int sNum2 = 0 ; int * temp = &sNum2;
? static 基本上會在記憶體中擁有自己分配的大小,對嗎?
從現在開始,我可以從 staticNum 函式中指向它嗎?
也許不是一個好習慣,但可以使用嗎?
int * staticNum(){
int static sNum=0;
int * temp=&sNum;
sNum ;
return temp;
}
uj5u.com熱心網友回復:
這是有效的代碼。
變數,無論是在static檔案范圍內還是在函式內部宣告,都具有完整的程式生命周期。這意味著它的地址將始終有效,并且可以在程式中的任何位置安全地取消參考。
uj5u.com熱心網友回復:
函式回傳的指標
int * staticNum(){
int static sNum=0;
int * temp=&sNum;
sNum ;
return temp;
}
將是有效的,因為靜態變數sNum在退出函式后將是活動的。
uj5u.com熱心網友回復:
是的,可以使用。指向靜態變數的指標就像任何其他指標一樣。只需指向存盤靜態變數的資料段中的位置。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/410326.html
標籤:
下一篇:OpenMP中的默認變數范圍
