// 多級指標
# 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識別符號,因此,...