程式必須儲存和處理不同種類的資料,如整型和浮點數,編譯器需要知道給定的數值所代表的資料型別是什麼。 在c
中,術語」
物件」為記憶體中的一塊位置,它的內容代表值,物件也叫做變數,乙個物件的型別決定了此物件在內存在所占有的空間大小和它可能的取值範圍。例如:相同模式的位元位可以完全表示不同的整形,這取決於資料物件是否被解釋為有符號數。
c中的型別可以分為以下幾類: l
基礎型別
標準和擴充套件整數型別
複雜浮點型別 l
列舉型別 l
void型別
l派生型別 ²
指標型別 ²
資料型別 ²
結構型別 ²
聯合型別 ²
函式型別
基本型別和列舉型別一起組成了演算法型別,
演算法型別和指標型別一起被稱做標量型別,最後,陣列型別和結構型別構成了全體的型別(聯合體因為在任何時間只有乙個成員可以儲存資料所以不被考慮)。
函式型別描述了乙個函式的介面,即,它指定了函式返回值的型別和所有引數的型別;
其他的型別描述物件,這些描述也有可能包含物件儲存的空間大小,如果包括,此型別完全可以稱做物件型別;如果不包括,它將是乙個不完整的型別。下面的陣列變數的定義就是乙個不完整型別的例子:
farrextern float farr[ ]; // external declaration
被宣告為乙個資料,它的元素型別為float
。然而,因為陣列的大小這裡沒有指定,farr
的型別是不完整的,只要全域性陣列farr
在另乙個原始檔中被指定大小,這個宣告足夠可以使你在當前的域內使用此陣列。
例如unsigned short,
C核心技術手冊(二十三)
字串常量包含乙個字串行 也包括空格 均位於乙個雙引號中,例如 hello world n 與字元常量一樣,字串常量可以包含源字符集中的所有字元,唯一例外就是使用雙引號,反斜槓 換行符等需要通過轉義來表示,下面 printf 語句中首先產生乙個警告音,接著,在雙引號中指定乙個目錄,使用 s來替代指標 ...
C核心技術手冊(二)
組成c 程式的 積木 叫做函式,每個函式都有自己的用途,並且可以相互呼叫。每個函式包含可被執行的語句,而這些語句可以分組,從而形成語句塊。做為程式設計師,你可以直接使用 c標準庫的的函式,也可以自己編寫函式來實現既定目的。除此之外,還有很多專用的庫可以使用,例如圖形函式庫。然而,使用這些非標準庫,會...
C核心技術手冊(四)
在原始碼中應該使用注釋來說明程式,在 c語言中,有兩種插入注釋的方法 塊注釋使用 表示 開始,表示結束 行注釋使用 開始,直到此行結尾。你可以使用分割符 和 在一行中開始和結束注釋,並可以巢狀注釋在多行中,例如,在下面的函式原型中,省略號 表示 open 函式有第三個可選引數,注釋解釋此引數的使用方...