C語言變數位置的說明

2021-08-10 05:10:16 字數 532 閱讀 2543

c89規定,在任何執行任何語句之前,在block的開頭宣告所有區域性變數;

c99以及c++,變數可以在block的任何位置宣告;

關於block的說明:

以{}包圍起來的**段成為block,block中宣告的變數僅作用於該block,並可以遮蔽掉block外宣告的同名變數的作用。

舉例:#include

#include

int main()

報錯資訊:

若改為如下形式:

#include

#include

int main()

system("pause");

}此時不報錯,但是注意sub的生命週期僅限於所定義block內,若在block外使用sub則會顯示未定義,即:

#include

#include

int main()

printf("%d",sub);    //此處報錯,因為sub的生命週期僅限於block內

system("pause");

}

C語言中的變數的儲存位置

變數的預設儲存型別取決於它的申明位置。凡是在任何 塊之外宣告的變數總是儲存在靜態記憶體中。不屬於堆疊記憶體,這類變數稱為靜態變數。靜態變數在函式執行之前建立。在 塊內部宣告的變數的預設儲存型別是自動的,儲存在堆疊中。對於在 塊內部宣告的變數,如果給它加上 static 關鍵字,可以使它的儲存型別由自...

C語言結構型別變數的說明

c語言結構型別變數的說明 說明結構變數有以下三種方法。以上面定義的stu為例來加以說明。一 先定義結構,再說明結構變數。如 struct stu struct stu boy1,boy2 說明了兩個變數boy1和boy2為stu結構型別。也可以用巨集定義使乙個符號常量來表示乙個結構型別。例如 def...

C語言變數及其說明(C Primer)

1 自動儲存類 變數在宣告時可以加上auto 也可不加 自動儲存,具有 塊作用域,用到它時分配記憶體,用完了就釋放記憶體,它的宣告方式是在 塊內,鏈結為空 2 暫存器儲存類 暫存器變數宣告時只是向編譯器發出請求,而不是命令。如果幸運,暫存器變數被儲存到暫存器中享受高速訪問和操作 如果請求被編譯器拒絕...