更新中.......
在c語言中,僅有4種基本數(shù)據(jù)類型——整型,浮點型,指針和聚合類型(如數(shù)組和結(jié)構(gòu)等)。所有其他的類型都是從這4種基本類型派生而來。
1 . 整型
整型家族包括字符,短整型,整型和長整型,它們又分為有符號和無符號
| 類型 | 取值范圍 |
|---|---|
| char | 0~127 |
| signed char | -127~+127 |
| unsigned char | 0~255 |
| short int | -32767~+32767 |
| unsigned short int | 0~65535 |
| int | -32767~+32767 |
| unsigned int | 0~65535 |
| long int | -2147483647~+2147483647 |
| unsigned long int | 0~4294967295 |
short int至少16位,long int至少32位。至于缺省的int究竟是16位還是32位,或者是其他值,則由編譯器設(shè)計決定。通常這個選擇的缺省值是這種機器最為自然(高效)的位數(shù)。同時你還應(yīng)該注意到標準也沒有規(guī)定這3個值必須不一樣,如果某種機器的環(huán)境的字長是32位,而且沒有什么指令能夠更有效地處理更短的整型值,它可能把這3個整型值都設(shè)定為32位。
另外在定義char型變量時,應(yīng)盡量將數(shù)值控制在unsigned char與signed char的交集,這樣可以確保程序有更好的可移植性。
2 . 浮點類型
浮點家族包括float,double和long double類型。ANSI標準規(guī)定long double至少至少和double一樣長,而double至少和float一樣長。
標準同時規(guī)定了一個最小范圍,所有浮點類型至少能夠容納從10-37到1037之間的任何值。
浮點數(shù)字面值在缺省情況下都是double類型的,除非它的后面跟一個L或1表示它是一個long double類型的值,或者跟一個F或f表示它是一個float類型的值。
3 . 指針
數(shù)據(jù)在內(nèi)存中的地址也稱為指針,如果一個變量存儲了一份數(shù)據(jù)的指針,我們就稱它為指針變量。在C語言中,允許用一個變量來存放指針,這種變量稱為指針變量。指針變量的值就是某份數(shù)據(jù)的地址,這樣的一份數(shù)據(jù)可以是數(shù)組、字符串、函數(shù),也可以是另外的一個普通變量或指針變量?,F(xiàn)在假設(shè)有一個 char 類型的變量 c,它存儲了字符 'K'(ASCII碼為十進制數(shù) 75),并占用了地址為 0X11A 的內(nèi)存(地址通常用十六進制表示)。另外有一個指針變量 p,它的值為 0X11A,正好等于變量 c 的地址,這種情況我們就稱 p 指向了 c,或者說 p 是指向變量 c 的指針。

定義指針變量與定義普通變量非常類似,不過要在變量名前面加星號 ***,格式為:
datatype *name;
或者
datatype *name = value;
4 . 聚合類型
聚合數(shù)據(jù)類型能夠同時存儲超過一個的單獨數(shù)據(jù),c語言提供了兩種類型的聚合數(shù)據(jù)類型——數(shù)組和結(jié)構(gòu)。
數(shù)組
數(shù)組是相同類型的元素的集合,它的每個元素是通過下標引用來訪問的。
- 一維數(shù)組
int a[10];//聲明可存儲十個變量的一維數(shù)組
a[1] = 2;
- 多維數(shù)組
int b[2][3];//聲明一個2*3的二維數(shù)組
int c[6][8][10];
- 指針數(shù)組
int *api[10];
** 結(jié)構(gòu) **
結(jié)構(gòu)也是一些值的集合,這些值稱為它的成員,但是一個結(jié)構(gòu)的各個成員可能具有不同的類型。