1. 程式人生 > >黑馬程式設計師—C語言資料型別及不同型別常量表示方法

黑馬程式設計師—C語言資料型別及不同型別常量表示方法

一、C語言中的資料型別

1.資料型別的分類

C語言中常用的資料類型從大的方面可以分為5大類,分別是:基本型別、構造型別、指標型別、空型別void和定義型別typedef。而具體到各大分類中又可以劃分為一些小的分類,像在基本型別中,有短整型(short),整形(int),長整形(long),字元型(char),單精度實型(float)和雙精度實型(double);在構造型別中又可細分出陣列型別,結構體型別(struct),公用型(union)和列舉型別(enum),這些型別共同組建了C語言中的資料型別體系,每種型別又都會運用在不同的場合。具體分類見下圖:


2.各資料型別佔用的儲存空間和表示範圍

不同的型別佔用的儲存空間大小是不同的,及時是同一資料型別在不同位數平臺環境下和不同位數編譯器下佔用的儲存空間大小也略有不同,正如在32位編譯器下:

             short 在記憶體中佔兩個位元組,範圍為-2^15~(2^15-1)

             int 在記憶體中佔四個位元組,範圍為-2^31~(2^31-1)

       long在記憶體中佔四個位元組,範圍為-2^31~2^31-1

              unsigned short 在記憶體中佔兩個位元組,範圍為0~2^16-1

              unsigned int 在記憶體中佔四個位元組,範圍為0~2^32-1

             unsigned long在記憶體中佔四個位元組,範圍為0~2^32-1

              float:佔四個位元組,提供7~8位有效數字

              double: 佔八個位元組,提供15~16位有效數字

在16位編譯器下:

     整型(基本型):型別說明符為int,在記憶體中佔2個

短整型:型別說明符為short int或short所佔位元組和取值範圍均與整型(基本型)相同。

  長整型:型別說明符為long int或long,在記憶體中佔4個位元組

無符號型:型別說明符為unsigned,可與上述三種類型匹配而構成,各種無符號型別量所佔的記憶體空間位元組數與相應的有符號型別量相同。但由於省去了符號位,故不能表示負數。
實型變數,分為單精度(float型)、雙精度(double型)和長雙精度(long double型)三類。

單精度型佔4個位元組(32位)記憶體空間,其數值範圍為3.4E-38~3.4E+38,只能提供七位有效數字。

雙精度型佔8 個位元組(64位)記憶體空間,其數值範圍為1.7E-308~1.7E+308,可提供16位有效數字。 

長雙精度型16 個位元組(128位)記憶體空間,可提供18-19位有效數字。

在MAC64位編譯器下:

int:佔4個位元組,float:佔4個位元組,double:佔8個位元組,short:佔2個位元組,long:佔8個位元組

而字元型別char,不管是在16位編譯器還是32位及64位編譯器下始終是佔用1個位元組的儲存空間。

二、不同型別常量表示方法

1.整形常量書寫

1)10進位制整形常量(計算預設的使用10進位制常量表示整數)
10;
18;

2)8進位制整型常量
必須以數字0開頭,如:
045; //這是一個8進位制的整數,誤區:不是10進位制的15

3)2進位制整型常量
必須以0b(0B)開頭,如:
0b11111111111111111111111111111111; //32位的1,表示的是一個-1

4)16進位制整型常量
必須以0x開頭,如:
0x438fa;//這是一個16進位制的整數

2.實型(小數)常量的表示方法

1)單精度的常量
必須以字母f(F)結尾,如:
2.3f; //表示單精度的小數 佔用4個位元組

2)雙精度的常量
2.3; //計算機中預設的以雙精度的形式表示一個小數

3.字元型常量表示

1) 用單引號('')括起來的單個字元,裡面可以是字元、數字、符號、就是表示字元常量,如:
'a';  //字元a
'*';  //字元*
'&';  //字元&
而'ab'; //是不合法的

2) 特殊的字元常量(轉義字元),如:

'\n';  //換行符
'\t';  //製表符
'\r'; //這也都是字元常量(特殊的字元常量,是轉義字元)

4.字串常量

用雙引號括起來,裡面可以是字元、數字、符號,如:
"abc"; //字串abc 
"a"; //字元a 
" "; //包含一個空格
""; //空字串,什麼東西都沒有