C 函式的區域性變數和靜態變數

2022-02-10 09:18:05 字數 389 閱讀 4899

函式的區域性變數僅當函式被呼叫時才存在,一旦函式被終止,系統就把區域性變數刪除。因此,當下一次呼叫該函式時,不能保留上一次的區域性變數的值。函式每次呼叫時,系統會對區域性變數進行初始化。

函式的靜態變數是在區域性變數的資料型別前面加上static 關鍵字。它與區域性變數不同,初始化僅能執行一次。當函式終止時將靜態變數儲存在獨立的記憶體單元中,所以下一次呼叫該函式時,靜態變數能保持它原來的值。可以在不同的函式中使用相同的靜態變數名,這不會造成編譯器的混淆,因為編譯器一直跟蹤每個函式的靜態變數。

#include "

iostream.h

"double mean(double x);

void main()

double mean(double x)

區域性變數 全域性變數和靜態變數的關係。

這裡簡單的說下區域性變數和全域性變數和靜態變數的關係。首先,全域性變數儲存在靜態儲存區 區域性變數儲存在動態儲存區,是儲存在棧裡的 靜態變數 型別說明符是static。靜態變數屬於靜態儲存方式,其儲存空間為記憶體中的靜態資料區 在靜態儲存區內分配儲存單元 該區域中的資料在整個程式的執行期間一直占用這...

C中區域性變數 全域性變數和靜態變數辨析

根據區域性和全域性 靜態和非靜態,可以將變數分為4種 非靜態區域性變數 非靜態全域性變數 靜態區域性變數和靜態全域性變數,為方便起見,下稱為區域性變數 全域性變數 靜態區域性變數和靜態全域性變數。從作用域上 1.區域性變數只在宣告它的函式中可用 2.全域性變數在宣告它的原始檔中可用,可通過exter...

區域性變數,區域性靜態變數,全域性變數,全域性靜態變數分別

c 記憶體到底分幾個區?一 1 棧區 stack 由編譯器自動分配釋放 存放函式的引數值,區域性變數的值等。其操作方式類似於資料結構中的棧。2 堆區 heap 一般由程式設計師分配釋放,若程式設計師不釋放,程式結束時可能由os 注意它與資料結構中的堆是兩回事,分配方式倒是類似於鍊錶,呵呵。3 全域性...