3分鐘了解c語言基本數據類型「c語言字元類型包括哪些」

C語言支持的基本數據類型

通過前面的舉例分析,我們知道房子的類型,決定了房子的屬性。例如,一房一廳的房子,有一個房間的空間;兩房一廳的房子,有兩個房間的空間。同理,在C語言中,提供了「數據類型」,它可以定義變數。不同數據類型定義的變數,有不同的存儲空間和使用方式。

C語言支持的基本數據類型有:

(1) char類型,char類型稱為「字元」類型。一個字元是 ‘A’, ‘B’, ‘C’, ‘#’, ‘!’ 這樣的數據。char類型的變數稱為字元型變數,可以存放一個字元。char類型變數佔據1個位元組的存儲空間。

(2) short 類型,short類型稱為「短整型」。它用於存儲一個整數值,例如100,188這樣的整數值,short類型變數佔據2個位元組的存儲空間。

(3) int類型,int類型稱為「整型」。它用於存儲一個整數值,int類型變數佔據4個位元組的存儲空間。

(4) long類型,long類型稱為「長整型」。它用於存儲一個整數值,long類型變數佔據4個位元組的存儲空間。而且 long 類型可以組合成 long long 類型,它佔據8個位元組的存儲空間。

(5) float類型,float類型稱為「單精度浮點型」。它存放一個浮點數,例如12.345, 16.888這樣帶小數點的小數。float類型變數佔據4個位元組的存儲空間。

(6) double類型,double類型稱為「雙精度浮點數」。它存儲一個浮點數,double類型變數佔據8個位元組的存儲空間。

對於char、short、int和long類型,默認是「有符號數」類型,所以,能夠表示負數。那麼,它們可以結合unsigned關鍵字使用,表示無符號類型數據。

注意:float、double表示的浮點數類型,不可以與unsigned關鍵字組合使用。

我們可以歸納總結「有符號數類型」和「無符號數類型」的存儲容量和表示數值範圍如下表。

數據類型容量(位數)取值範圍
char8(1個位元組)-128 ~ 127(-2^7 ~ 2^7-1)
unsigned char8(1個位元組)0 ~ 255(0 ~ 2^8 – 1)
short16(2個位元組)-32767 ~ 32768(-2^15 ~ 2^15-1)
unsigned short16(2個位元組)0 ~ 65536(0 ~ 2^18-1)
int32(4個位元組)-2147483648 ~ +2147483647(-2^31 ~ 2^31-1)
unsigned int32(4個位元組)0 ~ 4294967295(0 ~ 2^32-1)
long32-2147483648 ~ +2147483647(-2^31 ~ 2^31-1)
unsigned long320 ~ 4294967295(0 ~ 2^32-1)
long long64-9223372036854775808 ~9223372036854775807(-2^63 ~ 2^63-1)
unsigned long long640 ~ 18446744073709551615(0 ~ 2^64-1)

char類型的最大值是2^7-1,unsigned char類型的最大值是2^8-1,可以看到,由於char類型變數的最高位作為符號位,只有7位作為數值位,而unsigned char類型的變數,全部8位都作為數值位。所以,能夠表示最大值的範圍不一樣。假設變數的數值位有N位,那麼,能夠表示的最大值是2的N次方減一,即 2^N – 1。例如數值位為1111 1111,此時,數值位有8位,那麼,它的值是1*2^0 + 1*2^1 + 1*2^2 + 1*2^3 + 1*2^4 + 1*2^5 + 1*2^6 + 1*2^7;如果這樣計算,比較繁瑣,那麼,我們可以思考:

1111 1111 + 1 = 1 0000 0000

所以,有:

1111 1111 = 1 0000 0000 – 1

= 1*2^8 – 1

通過這樣的方式計算,就可以快速得到N位全1的二進位,它的值是2^N – 1。

5.1 字元類型

在C語言中,定義了’A’、’B’、’C’、’#’、’?’這樣的符號為字元。一個字元可以存放到一個字元變數中。字元的特點是:

(1) 必須使用單引號 ‘ ‘ 把字元包含起來;

(2) 字元可以是ASCII表中字符集的字元;

C語言提供了關鍵字char表示「字元類型」;可以定義字元類型的變數;例如:

C語言支持哪些基本數據類型?

程序運行的輸出結果如下:

C語言支持哪些基本數據類型?

可以看到,用char關鍵字定義了字元類型的變數,分別定義了變數a和變數b,都是字元類型,並且給a變數存放了’X’字元,給b變數存放了’Y’字元。

最後,在printf()函數中,通過 %c 格式,輸出字元類型變數中存放的字元。

注意:給字元變數賦值的字元,必須使用單引號’ ‘把字元給包含起來。

一個字元在內存中存儲的是其ASCII值,那麼,我們可以把一個字元的ASCII值賦給一個字元變數,然後,再把它輸出。測試的例子如下。

C語言支持哪些基本數據類型?

程序運行結果如下:

C語言支持哪些基本數據類型?

可以看到,我們把 ‘0’ 字元的ASCII值賦給字元變數a,如同把字元 ‘0’ 賦給字元變數a一樣。因為,字元 ‘0’ 的ASCII值是48,在內存中就是存儲為48這個數值,所以,如同直接把ASCII值賦給字元變數。

通過這個例子,我們也區分了字元 ‘1’與數值1是有區別的。數值1的值就是1,但是,字元’1’的值是它的ASCII值,是49這個數值。

5.2 整數類型

在自然數中,100、1、99這樣的數值稱為「整數」。那麼,在C語言中,提供了相關的類型來存放整數值。

C語言提供了關鍵字short、int、long表示整數類型,可以定義整數變數。例如588數值,是一個整數值,那麼,可以存放在整數類型變數中。測試例子如下:

C語言支持哪些基本數據類型?

程序運行的輸出結果如下:

C語言支持哪些基本數據類型?

可以看到,在C語言中,提供了關鍵字short、int、long可以定義整數類型,而且是有符號數類型,所以,在變數y中,可以賦值負數。

注意char數據類型雖然是字元類型,但是,它有1個位元組的存儲空間,1個位元組的空間可以存儲8位二進位數據,可以表示為一個整數值。

在C語言中,關鍵字char、short、int、long數據默認都是有符號類型,所以存儲的數據可以表示負數。例如char類型的變數,容量是一個位元組,最高位是符號位,剩餘的7位是數據位。能夠表示最大的數值是0111 1111,十進位就是127。最小的數值是1000 0001,十進位就是-127。

5.3 浮點數類型

在自然數中,1.23、6.99這樣帶小數的數據,稱為:浮點數。在C語言中,提供了關鍵字float、double表示浮點數類型,可以定義浮點數變數。

如下是一個測試的例子:

C語言支持哪些基本數據類型?

程序運行的結果如下:

C語言支持哪些基本數據類型?

可以看到,我們定義了浮點數類型變數a1、a2,可以給它們賦值小數值。然後,通過 %f 格式輸出變數中的浮點數。注意:由於printf函數輸出浮點數帶精度部分,小數部分輸出6位,不足的補零。所以,1.23這樣的數據輸出1.230000,小數點有6位數。

注意:浮點數類型不能與unsigned關鍵字組合成「無符號浮點數」。如下是測試的例子:

C語言支持哪些基本數據類型?

編譯測試程序的結果如下:

C語言支持哪些基本數據類型?

可以看到,不能夠使用unsigned關鍵字來修飾float、double這樣的浮點數類型

原創文章,作者:投稿專員,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/280102.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
投稿專員的頭像投稿專員
上一篇 2024-12-20 18:54
下一篇 2024-12-20 18:54

相關推薦

發表回復

登錄後才能評論