C語言變數儲存型別

2022-12-26 01:06:04 字數 1037 閱讀 6395

1.儲存型別和資料型別。儲存型別是針對變數而言的,它規定了變數的儲存位置,從而也確認了其作用域和生存期;資料型別也可以針對變數,它規定了變數所佔記憶體空間的大小。

中只有兩種儲存型別:自動類和靜態類。全域性變數只能是靜態類,而區域性變數可以任意。

3.說明變數儲存型別的格式:《儲存型別》 《資料型別》 《變數名錶》;(儲存/資料型別可以交換次序),與儲存類別有關的說明符:

auto(自動),static(靜態),register(暫存器),extern(外部)。

4.計算機記憶體分三部分:動態儲存區(堆疊)、靜態儲存區、程式**區。

動態儲存區用來儲存函式呼叫時的返回位址、自動類別的區域性變數等;靜態儲存區用以存放全域性變數及靜態類別的區域性變數;程式**區存放各類**。

中,可以用static說明"靜態函式",其不允許巢狀定義,也不允許外部編譯單元中的函式對它進行呼叫。

#include<>

1.對於全域性變數可以使用extern和static兩種說明符。

2.全域性變數的定義只能出現一次,在定義全域性變數時,不可使用extern說明符。

3.全域性變數的說明(使用extern)可多次出現在需要的地方,說明的作用是擴充套件該全域性變數的作用域,可以對同一變數進行多次extern宣告。

4.全域性變數的生存期是整個程式的執行時間。

5.全域性變數可以進行不同函式之間的傳值。

int i=10注意:extern int i=10;是乙個具體變數的定義,不是外部變數的宣告

int main()

printf("::i=%d,i=%d\n",::i,i);

return 0;

}變數也是自動類變數,它與auto變數的區別僅在於:register說明的變數建議編譯程式將變數的值放入cpu的暫存器內,從而加快程式的執行速度。

2.由於cpu暫存器等的限制,registe宣告的變數不一定存放在暫存器中,若沒放入將自動按auto變數來處理。

變數存放在暫存器內,因此register變數沒位址,不能對其進行求位址運算。

變數的說明應盡量靠近其使用的地方,用完之後盡快釋放,以便提高暫存器的利用效率。

關於C語言中的變數

include void f5 int static int e void f4 int a void main void f4 int int e void f5 int b 首先,main函式中以10為引數呼叫函式f5,在函式f5中,給變數e賦值為5,接下來呼叫函式f4,引數b的值為10,在函式...

2C語言基本資料型別與常量變數

任課老師 李新宇教學時間 2012.9.3 課時 3課時班級 1001 1101 姓名 學習目標 知識與技能 1 掌握c語言的基本資料型別與表示範圍,區別學習無符號整數和有符號整數,並能正確選擇不同的資料型別表示資料。2 掌握常量和變數的概念。3 區別學習十進位制,八進位制,十六進製制的整型常量 能...

C語言中static變數使用方法

1.static 變數 靜態變數的型別說明符是static。靜態變數當然是屬於靜態儲存方式,但是屬於靜態儲存方式的量不一定就是靜態變數。例如外部變數雖屬於靜態儲存方式,但不一定是靜態變數,必須由 static加以定義後才能成為靜態外部變數,或稱靜態全域性變數。2.靜態區域性變數 靜態區域性變數屬於靜...