本章主要介紹C語言的各種數據類型、運算符和表達式。
2.1 C語言的數據類型
C語言的數據類型具體分類如下:
基本類型:分為整型、實型(又稱浮點型)、字符型和枚舉型四種。 構造類型:分為數組類型、結構類型和***用類型三種。 指針類型 空類型2.2 常量和變量
2.2.1 常量
1、常量的概念:在程序運行過程中,其值不能被改變的量稱為常量
2、 常量的分類:
整型常量 實型常量 字符常量 符號常量3、常量的類型,可通過書寫形式來判別。
2.2.2 變量
1、變量的概念:在程序運行過程中,其值可以被改變的量稱為變量
2、變量名:每個變量都必須有壹個名字——變量名,變量命名遵循標識符命名規則
3、變量值:在程序運行過程中,變量值存儲在內存中。在程序中,通過變量名來引用變量的值
4、標識符命名規則:
只能由字母、數字和下劃線組成,且以字母或下劃線開頭 有效長度:隨系統而異,但至少前8個字符有效。如果超長,則超長部分被舍棄 C語言的關鍵字不能用作變量名 註意:C語言對英文字母的大小敏感,即同壹字母的大小寫,被認為是兩個不同的字符。習慣上,變量名和函數名中的英文字母用小寫,以增加可讀性。
5、變量的定義與初始化
在C語言中,要求對所有用到的變量,必須先定義、後使用;且稱在定義變量的同時進行賦初值的操作為變量初始化。
(1)變量定義的壹般格式
數據類型 變量名[, 變量名2……];
例如,float radius, length, area;
(2)變量初始化的壹般格式
數據類型 變量名[=初值][, 變量名2[=初值2]……];
例如,float radius=2.5, length, area;
2.3 整型數據
2.3.1 整型變量
1、分類
根據占用內存字節數的不同,整型變量又分為4類:
(1)基本整型(類型關鍵字為int)。
(2)短整型(類型關鍵字為short [int])。
(3)長整型(類型關鍵字為long [int])。
(4)無符號整型。無符號型又分為無符號基本整型(unsigned [int])、無符號短整型(unsigned short)和無符號長整型(unsigned long)三種,只能用來存儲無符號整數。
2、占用內存字節數與值域
上述各類型整型變量占用的內存字節數,隨系統而異。在16位操作系統中,壹般用2字節表示壹個int型變量,且long型(4字節)≥int型(2字節)≥short型(2字節)。
顯然,不同類型的整型變量,其值域不同。占用內存字節數為n的(有符號)整型變量,其值域為:-2n*8-1~(2n*8-1-1);無符號整型變量的值域為:0~(2n*8-1)。
例如,PC機中的壹個int型變量,其值域為-22*8-1~(22*8-1-1),即-32768~32767;壹個unsigned型變量的值域為:0~(22*8-1),即0~65535。
第2章 數據類型、運算符與表達式
本章主要介紹C語言的各種數據類型、運算符和表達式。
2.1 C語言的數據類型
C語言的數據類型具體分類如下:
基本類型:分為整型、實型(又稱浮點型)、字符型和枚舉型四種。 構造類型:分為數組類型、結構類型和***用類型三種。 指針類型 空類型2.2 常量和變量
2.2.1 常量
1、常量的概念:在程序運行過程中,其值不能被改變的量稱為常量
2、 常量的分類:
整型常量 實型常量 字符常量 符號常量3、常量的類型,可通過書寫形式來判別。
2.2.2 變量
1、變量的概念:在程序運行過程中,其值可以被改變的量稱為變量
2、變量名:每個變量都必須有壹個名字——變量名,變量命名遵循標識符命名規則
3、變量值:在程序運行過程中,變量值存儲在內存中。在程序中,通過變量名來引用變量的值
4、標識符命名規則:
只能由字母、數字和下劃線組成,且以字母或下劃線開頭 有效長度:隨系統而異,但至少前8個字符有效。如果超長,則超長部分被舍棄 C語言的關鍵字不能用作變量名 註意:C語言對英文字母的大小敏感,即同壹字母的大小寫,被認為是兩個不同的字符。習慣上,變量名和函數名中的英文字母用小寫,以增加可讀性。
5、變量的定義與初始化
在C語言中,要求對所有用到的變量,必須先定義、後使用;且稱在定義變量的同時進行賦初值的操作為變量初始化。
(1)變量定義的壹般格式
數據類型 變量名[, 變量名2……];
例如,float radius, length, area;
(2)變量初始化的壹般格式
數據類型 變量名[=初值][, 變量名2[=初值2]……];
例如,float radius=2.5, length, area;
2.3 整型數據
2.3.1 整型變量
1、分類
根據占用內存字節數的不同,整型變量又分為4類:
(1)基本整型(類型關鍵字為int)。
(2)短整型(類型關鍵字為short [int])。
(3)長整型(類型關鍵字為long [int])。
(4)無符號整型。無符號型又分為無符號基本整型(unsigned [int])、無符號短整型(unsigned short)和無符號長整型(unsigned long)三種,只能用來存儲無符號整數。
2、占用內存字節數與值域
上述各類型整型變量占用的內存字節數,隨系統而異。在16位操作系統中,壹般用2字節表示壹個int型變量,且long型(4字節)≥int型(2字節)≥short型(2字節)。
顯然,不同類型的整型變量,其值域不同。占用內存字節數為n的(有符號)整型變量,其值域為:-2n*8-1~(2n*8-1-1);無符號整型變量的值域為:0~(2n*8-1)。
例如,PC機中的壹個int型變量,其值域為-22*8-1~(22*8-1-1),即-32768~32767;壹個unsigned型變量的值域為:0~(22*8-1),即0~65535。
實型數據
2.4.1 實型變量
C語言的實型變量,分為兩種:
(1)單精度型:類型關鍵字為float,壹般占4字節(32位)、提供7位有效數字。
(2)雙精度型:類型關鍵字為double,壹般占8個字節、提供15~16位有效數字。
2.4.2 實型常量
1、表示形式
實型常量即實數,在C語言中又稱浮點數,其值有兩種表達形式:
(1)十進制形式:例如3.14、9.8。
(2)指數形式:<尾數>E(e)<整型指數>。例如3.0E+5等。
2、關於類型
實型常量不分float型和double型。壹個實型常量,可以賦給壹個實型變量(float型或double型)。
2.5 字符型數據
2.5.1 字符常量
1、字符常量的定義
用壹對單引號括起來的單個字符,稱為字符常量。
例如,‘A’、‘1’、‘+’等。
2、轉義字符
C語言還允許使用壹種特殊形式的字符常量,就是以反斜杠“\ ”開頭的轉義字符。
註意:如果反斜杠或單引號本身作為字符常量,必須使用轉義字符:‘\\’、‘\’‘。
[案例2.1] 用轉義字符輸出可打印字符和不可打印字符。
main()
{
printf(“\x4F\x4B\x21\n”); /* 等價於printf(“OK!\n”); */
printf(“\x15 \xAB\n”);
}
程序運行結果如下:
OK!
2.5.2 字符變量
字符變量的類型關鍵字為char,壹般占用1字節內存單元。
1.變量值的存儲
字符變量用來存儲字符常量。將壹個字符常量存儲到壹個字符變量中,實際上是將該字符的ASCII碼值(無符號整數)存儲到內存單元中。
例如,
char ch1, ch2; /*定義兩個字符變量:ch1,ch2*/
ch1=’a’; ch2=’b’; /*給字符變量賦值*/
2.特性
字符數據在內存中存儲的是字符的ASCII碼—— 壹個無符號整數,其形式與整數的存儲形式壹樣,所以C語言允許字符型數據與整型數據之間通用。
(1)壹個字符型數據,既可以字符形式輸出,也可以整數形式輸出。
[案例2.2] 字符變量的字符形式輸出和整數形式輸出。
main()
{
char ch1,ch2;
ch1='a'; ch2='b';
printf(“ch1=%c,ch2=%c\n”,ch1,ch2);
printf(“ch1=%d,ch2=%d\n”,ch1,ch2);
}
程序運行結果:
ch1=a,ch2=b
ch1=97,ch2=98
(2)允許對字符數據進行算術運算,此時就是對它們的ASCII碼值進行算術運算。
[案例2.3] 字符數據的算術運算。
main()
{
char ch1,ch2;
ch1=‘a’; ch2=‘B’;
printf(“ch1=%c,ch2=%c\n”,ch1-32,ch2+32); /*字母的大小寫轉換*/
/*用字符形式輸出壹個大於256的數值*/
printf("ch1+200=%d\n", ch1+200);
printf("ch1+200=%c\n", ch1+200);
printf("ch1+256=%d\n", ch1+256);
printf("ch1+256=%c\n", ch1+256);
}
程序運行結果:
ch1=A,ch2=b
ch1+200=297
ch1+200=)
ch1+256=353
ch1+256=a