1. 程式人生 > >C語言中存儲類別又分為四類:自動(auto)、靜態(static)、寄存器的(register)和外部的(extern)。

C語言中存儲類別又分為四類:自動(auto)、靜態(static)、寄存器的(register)和外部的(extern)。

字符變量 修飾 例如 register ext 進行 適合 sta --

除法運算中註意:

如果相除的兩個數都是整數的話,則結果也為整數,小數部分省略,如8/3 = 2;而兩數中有一個為小數結果則為小數,如:9.0/2 = 4.500000。

取余運算中註意:

該運算只適合用兩個整數進行取余運算,如:10%3 = 1;而10.0%3則是錯誤的;運算後的符號取決於被模數的符號,如(-10)%3 = -1;而10%(-3) = 1。

--

C語言中存儲類別又分為四類:自動(auto)、靜態(static)、寄存器的(register)和外部的(extern)。

1、 用關鍵字auto定義的變量為自動變量,auto可以省略,auto不寫則隱含定為“自動存儲類別”,屬於動態存儲方式

2、 用static修飾的為靜態變量,如果定義在函數內部的,稱之為靜態局部變量;如果定義在函數外部,稱之為靜態外部變量。如下為靜態局部變量:

註意:靜態局部變量屬於靜態存儲類別,在靜態存儲區內分配存儲單元,在程序整個運行期間都不釋放;靜態局部變量在編譯時賦初值,即只賦初值一次;如果在定義局部變量時不賦初值的話,則對靜態局部變量來說,編譯時自動賦初值0(對數值型變量)或空字符(對字符變量)

3、為了提高效率,C語言允許將局部變量得值放在CPU中的寄存器中,這種變量叫“寄存器變量”,用關鍵字register作聲明。例如:

註意:只有局部自動變量和形式參數可以作為寄存器變量;一個計算機系統中的寄存器數目有限,不能定義任意多個寄存器變量;局部靜態變量不能定義為寄存器變量。

4、用extern聲明的的變量是外部變量,外部變量的意義是某函數可以調用在該函數之後定義的變量。

在C語言中不能被其他源文件調用的函數稱謂內部函數 ,內部函數由static關鍵字來定義,因此又被稱謂靜態函數,形式為:

static [數據類型] 函數名([參數])

這裏的static是對函數的作用範圍的一個限定,限定該函數只能在其所處的源文件中使用,因此在不同文件中出現相同的函數名稱的內部函數是沒有問題的。

在C語言中能被其他源文件調用的函數稱謂外部函數 ,外部函數由extern關鍵字來定義,形式為:

extern [數據類型] 函數名([參數])

C語言規定,在沒有指定函數的作用範圍時,系統會默認認為是外部函數,因此當需要定義外部函數時extern也可以省略。

在聲明數組後沒有進行初始化的時候,靜態(static)和外部(extern)類型的數組元素初始化元素為0,自動(auto)類型的數組的元素初始化值不確定。

C語言中存儲類別又分為四類:自動(auto)、靜態(static)、寄存器的(register)和外部的(extern)。