說明多級指標與動態變數,靜態變數關係的幾個簡單程式

2022-06-29 02:15:08 字數 993 閱讀 9140

// 多級指標

# include

int main(void)

/*程式輸出結果:

i = 1,    p = 6487628,  q = 6487616

*p = 1,   &i = 6487628, &p = 6487616

**q = 1,  *q = 6487628, &q = 6487608

--------------------------------

process exited after 0.01289 seconds with return value 0

請按任意鍵繼續. . .

結論:多級指標就是儲存了乙個指標變數位址的指標變數。

*/ // 多級指標與靜態變數的缺陷

# include

void f(int ** q)

int main(void) /*

本程式編譯正確,但卻無法執行,原因是語法上沒有錯誤,但邏輯上有錯。

錯誤語句為   printf("%d", *p); 此處的 *p 有問題,原因是 *p 相當

於 i 變數,但程式在執行完被調函式 f 後,就將 i 的記憶體釋放了,接下

來 i 就不屬於此程式的記憶體,而 *p 訪問的是已被釋放的記憶體 i ,這樣

就出現了錯誤。

*/ 模擬於上乙個程式。

// 多級指標與動態變數

# include

# include

void f(int ** q)

int main(void) /*

程式輸出結果:

5--------------------------------

process exited after 0.02017 seconds with return value 0

請按任意鍵繼續. . .

由於使用了 malloc 函式,構造了乙個動態變數,而動態變數需要手動釋放

可以跨函式使用。

*/

靜態變數與動態變數

1 靜態儲存變數通常是在變數定義時就分定儲存單元並一直保持不變,直至整個程式結束。靜態變數,全域性動態變數都是靜態儲存 2 動態儲存變數是在程式執行過程中,使用它時才分配儲存單元,使用完畢立即釋放 3 靜態儲存變數是一直存在的,而動態儲存變數則時而存在時而消失。通常把由於變數儲存方式不同而產生的特性...

靜態變數與動態變數

1 靜態儲存變數通常是在變數定義時就分定儲存單元並一直保持不變,直至整個程式結束。靜態變數,全域性動態變數都是靜態儲存 2 動態儲存變數是在程式執行過程中,使用它時才分配儲存單元,使用完畢立即釋放 3 靜態儲存變數是一直存在的,而動態儲存變數則時而存在時而消失。通常把由於變數儲存方式不同而產生的特性...

靜態變數和動態變數

首先,變數的儲存型別可分為四類 自動型別 auto 暫存器型別 register 靜態型別 static 外部型別 extern 動態變數 自動型別 auto 暫存器型別 register 靜態變數 靜態型別 static 外部型別 extern 屬於動態全域性變數,可以省略auto識別符號,因此,...