C語言的數據類型
在第一課中,我們已經看到程序中使用的各種變量都應預先加以說明,即先說明,後使用。對變量的說明可以包括三個方面:
·數據類型
·存儲類型
·作用域
在本課中,我們只介紹數據類型說明。其它說明在以後各章中陸續介紹。所謂數據類型是按被說明量的性質,表示形式,占據存儲空間的多少,構造特點來劃分的。在C語言中,數據類型可分為:基本數據類型,構造數據類型,指針類型,空類型四大類。
1.基本數據類型
基本數據類型最主要的特點是,其值不可以再分解為其它類型。也就是說,基本數據類型是自我說明的。
2.構造數據類型構造數據類型
是根據已定義的一個或多個數據類型用構造的方法來定義的。也就是說,一個構造類型的值可以分解成若干個“成員”或“元素”。每個“成員”都是一個基本數據類型或又是一個構造類型。在C語言中,構造類型有以下幾種:
·數組類型
·結構類型
·聯合類型
3.指針類型
指針是一種特殊的,同時又是具有重要作用的數據類型。其值用來表示某個量在內存儲器中的地址。雖然指針變量的取值類似於整型量,但這是兩個類型完全不同的量,因此不能混為一談。4.空類型在調用函數值時,通常應向調用者返回一個函數值。這個返回的函數值是具有一定的數據類型的,應在函數定義及函數說明中給以說明,例如在例題中給出的max函數定義中,函數頭為: int max(int a,int b);其中“int ”類型說明符即表示該函數的返回值為整型量。又如在例題中,使用了庫函數 sin,由於系統規定其函數返回值為雙精度浮點型,因此在賦值語句s=sin (x);中,s 也必須是雙精度浮點型,以便與sin函數的返回值一致。所以在說明部分,把s說明為雙精度浮點型。但是,也有一類函數,調用後並不需要向調用者返回函數值, 這種函數可以定義為“空類型”。其類型說明符為void。在第五章函數中還要詳細介紹。在本章中,我們先介紹基本數據類型中的整型、浮點型和字符型。其余類型在以後各章中陸續介紹。
對於基本數據類型量,按其取值是否可改變又分為常量和變量兩種。在程序執行過程中,其值不發生改變的量稱為常量,取值可變的量稱為變量。它們可與數據類型結合起來分類。例如,可分為整型常量、整型變量、浮點常量、浮點變量、字符常量、字符變量、枚舉常量、枚舉變量。在程序中,常量是可以不經說明而直接引用的,而變量則必須先說明後使用。
整型量
整型量包括整型常量、整型變量。整型常量就是整常數。在C語言中,使用的整常數有八進制、十六進制和十進制三種。
整型常量
1.八進制整常數八進制整常數必須以0開頭,即以0作為八進制數的前綴。數碼取值為0~7。八進制數通常是無符號數。
以下各數是合法的八進制數:
015(十進制為13) 0101(十進制為65) 0177777(十進制為65535)
以下各數不是合法的八進制數:
256(無前綴0) 03A2(包含了非八進制數碼) -0127(出現了負號)
2.十六進制整常數
十六進制整常數的前綴為0X或0x。其數碼取值為0~9,A~F或a~f。
以下各數是合法的十六進制整常數:
0X2A(十進制為42) 0XA0 (十進制為160) 0XFFFF (十進制為65535)
以下各數不是合法的十六進制整常數:
5A (無前綴0X) 0X3H (含有非十六進制數碼)
3.十進制整常數
十進制整常數沒有前綴。其數碼為0~9。
以下各數是合法的十進制整常數:
237 -568 65535 1627
以下各數不是合法的十進制整常數:
023 (不能有前導0) 23D (含有非十進制數碼)