數(shù)據(jù)類型、運(yùn)算符和表達(dá)式2_第1頁(yè)
數(shù)據(jù)類型、運(yùn)算符和表達(dá)式2_第2頁(yè)
數(shù)據(jù)類型、運(yùn)算符和表達(dá)式2_第3頁(yè)
數(shù)據(jù)類型、運(yùn)算符和表達(dá)式2_第4頁(yè)
數(shù)據(jù)類型、運(yùn)算符和表達(dá)式2_第5頁(yè)
已閱讀5頁(yè),還剩39頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、C語(yǔ)言程序設(shè)計(jì)語(yǔ)言程序設(shè)計(jì)第第2章章 數(shù)據(jù)類型、運(yùn)算符和表達(dá)式數(shù)據(jù)類型、運(yùn)算符和表達(dá)式2.1 數(shù)據(jù)類型 2.2 常量與變量 2.3 運(yùn)算符和表達(dá)式 2.4 類型轉(zhuǎn)換2.5 枚舉類型C語(yǔ)言程序設(shè)計(jì)語(yǔ)言程序設(shè)計(jì)2.1 數(shù)據(jù)類型2.1.1 C語(yǔ)言的數(shù)據(jù)類型 一個(gè)程序應(yīng)包括兩個(gè)方面的內(nèi)容: 1數(shù)據(jù)的描述。 2操作步驟,即動(dòng)作的描述。C語(yǔ)言程序設(shè)計(jì)語(yǔ)言程序設(shè)計(jì)2.1 數(shù)據(jù)類型數(shù)據(jù)類型包含兩個(gè)方面的含義:取值范圍和操作。2.1.2 數(shù)值型數(shù)據(jù)的表示與存儲(chǔ)形式 數(shù)值型數(shù)據(jù)可分為: 整型:有符號(hào)整型(singed int) 無(wú)符號(hào)整型(Unsigned int) 實(shí)型:?jiǎn)尉龋╢loat) 雙精度(doubl

2、e) C語(yǔ)言程序設(shè)計(jì)語(yǔ)言程序設(shè)計(jì)2.1 數(shù)據(jù)類型1.整型(int):有符號(hào)的。即singed int0110010110101011 符號(hào)位數(shù)值位它在計(jì)算機(jī)內(nèi)占4個(gè)字節(jié),32位。最高位為符號(hào)位,其余31位為數(shù)值位。取值范圍-2147483648+2147483647之間。 即-231231-1。 -2147483648 -2 -1 0 +1 +2 . . +21474836470110010110101011對(duì)應(yīng)的格式是:dC語(yǔ)言程序設(shè)計(jì)語(yǔ)言程序設(shè)計(jì)2.1 數(shù)據(jù)類型2.無(wú)符號(hào)的整型(unsigned int)0110010110101011 數(shù)值位它在計(jì)算機(jī)內(nèi)占4個(gè)字節(jié),32位。全部是數(shù)值位。

3、 取值范圍0232-1。 0 1 2 . . +232-10110010110101011對(duì)應(yīng)的格式是:uC語(yǔ)言程序設(shè)計(jì)語(yǔ)言程序設(shè)計(jì)2.1 數(shù)據(jù)類型2.單精度(float)數(shù)的浮點(diǎn)表示形式:階碼和尾數(shù)數(shù)的浮點(diǎn)表示形式:階碼和尾數(shù) 階碼階碼:采用補(bǔ)碼表示的定點(diǎn)純整數(shù),占一個(gè)字節(jié),階符占一位。:采用補(bǔ)碼表示的定點(diǎn)純整數(shù),占一個(gè)字節(jié),階符占一位。 尾數(shù)尾數(shù):采用補(bǔ)碼表示的定點(diǎn)純小數(shù),占三個(gè)字節(jié),數(shù)符占一位。:采用補(bǔ)碼表示的定點(diǎn)純小數(shù),占三個(gè)字節(jié),數(shù)符占一位。110.001=1.100112+10=11001.1 2-10=0.110011 2+11 N=數(shù)符數(shù)符尾數(shù)尾數(shù)2階符階符階碼階碼 尾數(shù)的位數(shù)

4、決定數(shù)的精度。尾數(shù)的位數(shù)決定數(shù)的精度。 階碼的位數(shù)決定數(shù)的范圍。階碼的位數(shù)決定數(shù)的范圍。表示的范圍:表示的范圍:-10381038 階符 階碼 數(shù)符 尾數(shù) 00000011011001100000000000000000 -1038 .-10-6 0.0 10-6 . . +1038機(jī)器零對(duì)應(yīng)的格式是:fC語(yǔ)言程序設(shè)計(jì)語(yǔ)言程序設(shè)計(jì)2.1 數(shù)據(jù)類型3.雙精度(double) 與與float類型類似,只不過(guò)占類型類似,只不過(guò)占8個(gè)字節(jié),精度更高,表個(gè)字節(jié),精度更高,表示的范圍更大示的范圍更大. 表示的范圍:表示的范圍:-1030810308對(duì)應(yīng)的格式是:lf每個(gè)類型占用的字節(jié)數(shù),可用運(yùn)算符:siz

5、eof(類型名)求出來(lái).#include stdio.hvoid main()printf(%d %d %d %dn,sizeof(int),sizeof(long), sizeof(float),sizeof(double);運(yùn)行結(jié)果為:4 4 4 8C語(yǔ)言程序設(shè)計(jì)語(yǔ)言程序設(shè)計(jì)2.1 數(shù)據(jù)類型例:體驗(yàn)實(shí)數(shù)的誤差存在#include stdio.hvoid main()float d=3.500001,s;int i;s=0;for (i=1;i=100000;i+)s=s+d;printf(%fn,s);運(yùn)行結(jié)果為:350000.031250若把程序中的float換為double,則程序的運(yùn)

6、行結(jié)果是: 350000.100000C語(yǔ)言程序設(shè)計(jì)語(yǔ)言程序設(shè)計(jì)2.1 數(shù)據(jù)類型2.1.3 字符型數(shù)據(jù)的表示與存儲(chǔ)形式 在計(jì)算機(jī)中對(duì)字符型數(shù)據(jù)的存儲(chǔ)是將該字符相應(yīng)的ASCII代碼放到存儲(chǔ)單元中。即一個(gè)字符占一個(gè)字節(jié)的存儲(chǔ)單元,存儲(chǔ)單元存放的是該字符相應(yīng)的ASCII碼值(以二進(jìn)制形式存放),例如字符A的ASCII代碼為65,在內(nèi)存中存儲(chǔ)形式如下: 0 1 0 0 0 0 0 1 由于在內(nèi)存中字符數(shù)據(jù)以ASCII碼存儲(chǔ),它的存儲(chǔ)形式與整數(shù)的存儲(chǔ)形式相類似,所以C語(yǔ)言中字符型數(shù)據(jù)和整型數(shù)據(jù)之間可以通用。 也就是說(shuō):整型包含字符型。因?yàn)檎麛?shù)的范圍比字符的范圍大。C語(yǔ)言程序設(shè)計(jì)語(yǔ)言程序設(shè)計(jì)2.1 數(shù)據(jù)類

7、型2.1.4 基本字符集、關(guān)鍵字和標(biāo)識(shí)符 1基本字符集字符是C的基本元素,C語(yǔ)言允許使用的基本字符集有:26個(gè)大寫(xiě)字母26個(gè)小寫(xiě)字母10個(gè)阿拉伯?dāng)?shù)字其他字符 !“ # % & ( ) * + , - . / : ? _ | 空格字符以及制表符和換行符等控制字符C語(yǔ)言程序設(shè)計(jì)語(yǔ)言程序設(shè)計(jì)2.1 數(shù)據(jù)類型2.1.4 基本字符集、關(guān)鍵字和標(biāo)識(shí)符 關(guān)鍵字是關(guān)鍵字是C C中具有固定意義的字符串。中具有固定意義的字符串。關(guān)鍵字不可用于變關(guān)鍵字不可用于變量名、函數(shù)名等。量名、函數(shù)名等。C C中的關(guān)鍵字共中的關(guān)鍵字共3232個(gè),必須用小寫(xiě)字母表示:個(gè),必須用小寫(xiě)字母表示: auto break cas

8、e char const continue default do double else enum extern float for goto if int long register return short signed sizeof static struct switch typedef union unsigned void volatile while 2關(guān)鍵字C語(yǔ)言程序設(shè)計(jì)語(yǔ)言程序設(shè)計(jì)2.1 數(shù)據(jù)類型2.1.4 基本字符集、關(guān)鍵字和標(biāo)識(shí)符 標(biāo)識(shí)符用于命名變量、類型、函數(shù)和其他各種用戶定義的標(biāo)識(shí)符用于命名變量、類型、函數(shù)和其他各種用戶定義的對(duì)象。對(duì)象。 是由字母、下劃線和數(shù)字三種字

9、符組成;是由字母、下劃線和數(shù)字三種字符組成; 第一個(gè)字符必須為字母或下劃線;第一個(gè)字符必須為字母或下劃線; 標(biāo)準(zhǔn)標(biāo)準(zhǔn)C對(duì)標(biāo)識(shí)符的長(zhǎng)度沒(méi)有限制,但不同編譯系統(tǒng)識(shí)別的對(duì)標(biāo)識(shí)符的長(zhǎng)度沒(méi)有限制,但不同編譯系統(tǒng)識(shí)別的有效字符不同;有效字符不同; C區(qū)分大小寫(xiě);區(qū)分大小寫(xiě); 不允許關(guān)鍵字作為標(biāo)識(shí)符。不允許關(guān)鍵字作為標(biāo)識(shí)符。 3標(biāo)識(shí)符C語(yǔ)言程序設(shè)計(jì)語(yǔ)言程序設(shè)計(jì)2.2 常量與變量2.2.1 常量定義:其值在程序運(yùn)行期間不能改變的量。1. 整型常量 (1)十進(jìn)制整型常量:以數(shù)字19開(kāi)頭,其他位以數(shù)字09構(gòu)成十進(jìn)制整型常量。如12,-38等。 (2)八進(jìn)制整型常量:以數(shù)字0開(kāi)頭,其他位以數(shù)字07構(gòu)成八進(jìn)制整型常如

10、012,-037等。 在C語(yǔ)言中,整型常量有十進(jìn)制、八進(jìn)制、十六進(jìn)制三種進(jìn)制表示方法,并且各種數(shù)制均可有正(+)負(fù)(-)之分,正數(shù)的“+”可省略。 (3)十六進(jìn)制整型常量:以0X或0 x開(kāi)頭(數(shù)字0和大寫(xiě)或小寫(xiě)字母x),其他位以數(shù)字09或字母af或AF構(gòu)成十六進(jìn)制整型常量。如0 x12,-0Xa9等。 C語(yǔ)言程序設(shè)計(jì)語(yǔ)言程序設(shè)計(jì)2.2 常量與變量2.2.1 常量1. 整型常量 23 23456 32767 33333 6666666 C語(yǔ)言程序設(shè)計(jì)語(yǔ)言程序設(shè)計(jì)2.2 常量與變量2.2.1 常量2. 實(shí)型常量實(shí)型常量(1)小數(shù)表示法 :它是由數(shù)的符號(hào)、數(shù)字和小數(shù)點(diǎn)組成的實(shí)型常量(注意:必須有小數(shù)

11、點(diǎn))。如-2.5、3.0、4.、.34等都是合法的實(shí)型小數(shù)形式。 (2)科學(xué)計(jì)數(shù)法 :科學(xué)計(jì)數(shù)法也稱指數(shù)法。它是由數(shù)的符號(hào)、尾數(shù)(整數(shù)或小數(shù))、階碼標(biāo)示(E或e)、階符和整數(shù)階碼組成的實(shí)型常量。尾數(shù)不可缺省,階碼必須為整數(shù)。如-2.5E-3、3e5、34E-3等都是合法的指數(shù)形式。如-2.5E-3表示-2.510-3。 實(shí)型常量又稱浮型常量。實(shí)型常量由整數(shù)部分和小數(shù)部分組成,有兩種表示形式:小數(shù)表示法和科學(xué)計(jì)數(shù)法。它只能用十進(jìn)制表示。 實(shí)型常量分為單精度、雙精度。實(shí)型常量如果沒(méi)有任何說(shuō)明,則表示為雙精度常量,實(shí)型常量后加上F或f則表示單精度常量。 C語(yǔ)言程序設(shè)計(jì)語(yǔ)言程序設(shè)計(jì)2.2 常量與變量2

12、.2.1 常量3. 字符常量 字符型常量是由一對(duì)單引號(hào)括起來(lái)的一個(gè)字符。它分為一般字符常量和轉(zhuǎn)義字符。一個(gè)字符常量在計(jì)算機(jī)的存儲(chǔ)中占據(jù)一個(gè)字節(jié)。 (1)一般字符常量 :一般字符常量是用單引號(hào)括起來(lái)的一個(gè)普通字符,其值為該字符的ASCII代碼值。ASCII編碼表見(jiàn)附錄1。如a、A等都是一般字符常量,但是a和A是不同的字符常量,a的值為97,而A的值為65。 (2)轉(zhuǎn)義字符 :C語(yǔ)言允許用一種特殊形式的字符常量,它是以反斜杠()開(kāi)頭的特定字符序列,表示ASCII字符集中控制字符、某些用于功能定義的字符和其他字符。如n表示回車(chē)換行符,表示字符“”。C語(yǔ)言程序設(shè)計(jì)語(yǔ)言程序設(shè)計(jì)C語(yǔ)言程序設(shè)計(jì)語(yǔ)言程序設(shè)計(jì)

13、(1) 位型中的位型中的ooo表示個(gè)八進(jìn)制數(shù)字,可以不用前綴;表示個(gè)八進(jìn)制數(shù)字,可以不用前綴;hh表示個(gè)十六進(jìn)制數(shù)字,表示個(gè)十六進(jìn)制數(shù)字,x 是前綴不能省。例如:是前綴不能省。例如:水平制表符可用下列任一種形式表示:水平制表符可用下列任一種形式表示:t011 11 x09 x9字符字符A可用下列任一種形式表示:可用下列任一種形式表示:A 101 x41 (2)單引號(hào)和反斜線字符雖然是打印字符,但編譯程序規(guī)定必須用)單引號(hào)和反斜線字符雖然是打印字符,但編譯程序規(guī)定必須用轉(zhuǎn)義序列表示。例如:轉(zhuǎn)義序列表示。例如:?jiǎn)我?hào)字符可用下列任一種形式表示:?jiǎn)我?hào)字符可用下列任一種形式表示: 047 47 x2

14、7反斜線字符可用下列任一種形式表示:反斜線字符可用下列任一種形式表示: 0134 134 x5c(3)雙引號(hào)字符常數(shù)可以用圖形符號(hào)或轉(zhuǎn)義序列任一種形式表示。)雙引號(hào)字符常數(shù)可以用圖形符號(hào)或轉(zhuǎn)義序列任一種形式表示。例如:例如:“” 042 x22(4)字符)字符0是值為的字符(空字符),不是空白字符。是值為的字符(空字符),不是空白字符。0除除表示值外,它強(qiáng)調(diào)對(duì)象的類型是字符型。也就是說(shuō),表示值為的字符表示值外,它強(qiáng)調(diào)對(duì)象的類型是字符型。也就是說(shuō),表示值為的字符用用0比用好。比用好。 C語(yǔ)言程序設(shè)計(jì)語(yǔ)言程序設(shè)計(jì)2.2 常量與變量2.2.1 常量4.字符串常量 字符串常量也稱字符串,由一對(duì)雙引號(hào)括

15、起來(lái)(字符串常量也稱字符串,由一對(duì)雙引號(hào)括起來(lái)(“”“”)的字符序列。)的字符序列。字符序列中的字符個(gè)數(shù)稱字符串長(zhǎng)度,沒(méi)有字符的字符串稱為空串。字字符序列中的字符個(gè)數(shù)稱字符串長(zhǎng)度,沒(méi)有字符的字符串稱為空串。字符串常量中的字符是連續(xù)存儲(chǔ)的,并在最后自動(dòng)加上字符符串常量中的字符是連續(xù)存儲(chǔ)的,并在最后自動(dòng)加上字符00作為字作為字符串結(jié)束標(biāo)志。如字符串符串結(jié)束標(biāo)志。如字符串“a”a”在計(jì)算機(jī)內(nèi)存中占兩個(gè)連續(xù)單元,存儲(chǔ)內(nèi)在計(jì)算機(jī)內(nèi)存中占兩個(gè)連續(xù)單元,存儲(chǔ)內(nèi)容為字符容為字符aa和和00。字符串常量和字符常量的區(qū)別是十分顯著的,。字符串常量和字符常量的區(qū)別是十分顯著的,主要表現(xiàn)為:主要表現(xiàn)為:(1 1)表示

16、形式不同。字符常量以單引號(hào)表示,字符串常量以雙引號(hào)表示。)表示形式不同。字符常量以單引號(hào)表示,字符串常量以雙引號(hào)表示。 (2 2)存儲(chǔ)所占內(nèi)存空間不同。字符常量在內(nèi)存中只用)存儲(chǔ)所占內(nèi)存空間不同。字符常量在內(nèi)存中只用1 1個(gè)字節(jié)存放該字個(gè)字節(jié)存放該字符的符的ASCIIASCII碼值。字符串常量在內(nèi)存中,除了存儲(chǔ)串中有效字符的碼值。字符串常量在內(nèi)存中,除了存儲(chǔ)串中有效字符的ASCIIASCII碼值外,系統(tǒng)還自動(dòng)在串后加上碼值外,系統(tǒng)還自動(dòng)在串后加上1 1個(gè)字節(jié),存放字符串結(jié)束標(biāo)志個(gè)字節(jié),存放字符串結(jié)束標(biāo)志00。 C語(yǔ)言程序設(shè)計(jì)語(yǔ)言程序設(shè)計(jì)(3 3)允許的操作不同。字符常量允許在)允許的操作不同。

17、字符常量允許在一定范圍內(nèi)與整數(shù)進(jìn)行加法或減法運(yùn)算,一定范圍內(nèi)與整數(shù)進(jìn)行加法或減法運(yùn)算,如如a-32a-32合法。字符串常量不允許上述運(yùn)算,合法。字符串常量不允許上述運(yùn)算,如如“a”-32a”-32非法的。非法的。 (4 4)存放的變量不同。字符常量可存放)存放的變量不同。字符常量可存放在字符變量或整型變量中,而字符串常量需要在字符變量或整型變量中,而字符串常量需要存放在字符數(shù)組中。存放在字符數(shù)組中。如果有一個(gè)字符串,“CHINA”實(shí)際上在內(nèi)存中是C H I N A 0C語(yǔ)言程序設(shè)計(jì)語(yǔ)言程序設(shè)計(jì)2.2.2符號(hào)常量符號(hào)常量為使程序易于閱讀和便于修改,可以給程序中經(jīng)常使用的常量定義一個(gè)有一定含義為使

18、程序易于閱讀和便于修改,可以給程序中經(jīng)常使用的常量定義一個(gè)有一定含義的名字,這個(gè)名字稱為符號(hào)常量。符號(hào)常量是一個(gè)標(biāo)識(shí)符,有三種方法定義一個(gè)符號(hào)常量:的名字,這個(gè)名字稱為符號(hào)常量。符號(hào)常量是一個(gè)標(biāo)識(shí)符,有三種方法定義一個(gè)符號(hào)常量:一種是利用編譯預(yù)處理的宏替換功能一種是利用編譯預(yù)處理的宏替換功能#define;另一種是用;另一種是用const類型限定符說(shuō)明并初始化一類型限定符說(shuō)明并初始化一個(gè)標(biāo)識(shí)符;第三種方法是通過(guò)定義枚舉類型來(lái)定義符號(hào)常量(以后講)。個(gè)標(biāo)識(shí)符;第三種方法是通過(guò)定義枚舉類型來(lái)定義符號(hào)常量(以后講)。用用#define定義符號(hào)常量定義符號(hào)常量形式:形式:#define 標(biāo)識(shí)符標(biāo)識(shí)符

19、常量表達(dá)式常量表達(dá)式常量表達(dá)式是值為常量的表達(dá)式,一般為已定義的符號(hào)常量或文字常量,常量表達(dá)式是值為常量的表達(dá)式,一般為已定義的符號(hào)常量或文字常量,也可以由運(yùn)算符連接常量形成的表達(dá)式;標(biāo)識(shí)符是符號(hào)常量的名字,它代表常量也可以由運(yùn)算符連接常量形成的表達(dá)式;標(biāo)識(shí)符是符號(hào)常量的名字,它代表常量表達(dá)式所表示的文字。例如:表達(dá)式所表示的文字。例如:#define SIZE 100#define PI 3.1415926#define BLANK #define TWO_PI 2.0*PI注:符號(hào)常量的名字(標(biāo)識(shí)符)一般用大寫(xiě)字母。注:符號(hào)常量的名字(標(biāo)識(shí)符)一般用大寫(xiě)字母。#define 行不是行不是C

20、語(yǔ)句,而是編譯程序的預(yù)處理控制語(yǔ)句,而是編譯程序的預(yù)處理控制,因此其后面不加因此其后面不加“;” 2.2 常量與變量C語(yǔ)言程序設(shè)計(jì)語(yǔ)言程序設(shè)計(jì)2.2.2符號(hào)常量符號(hào)常量用用const定義符號(hào)常量。定義符號(hào)常量。形式:形式:const 類型區(qū)分符類型區(qū)分符 標(biāo)識(shí)符標(biāo)識(shí)符=常量表達(dá)式;常量表達(dá)式;符號(hào)符號(hào)“=”左邊的標(biāo)識(shí)符被定義為常量,標(biāo)識(shí)符代表常量表達(dá)左邊的標(biāo)識(shí)符被定義為常量,標(biāo)識(shí)符代表常量表達(dá)式的值。式的值。例如:例如:const int MAX=1000;const double PI=3.14159;const char BLANK=;const signed TRUE=1,FALSE=0

21、; 說(shuō)明:用說(shuō)明:用#define和和const定義的符號(hào)常量在實(shí)現(xiàn)上有本質(zhì)定義的符號(hào)常量在實(shí)現(xiàn)上有本質(zhì)不同。不同。#define在編譯預(yù)處理時(shí)用常量表達(dá)式去替換程序中所有出在編譯預(yù)處理時(shí)用常量表達(dá)式去替換程序中所有出現(xiàn)的常量標(biāo)識(shí)符,標(biāo)識(shí)符沒(méi)有對(duì)應(yīng)的存儲(chǔ)單元;由現(xiàn)的常量標(biāo)識(shí)符,標(biāo)識(shí)符沒(méi)有對(duì)應(yīng)的存儲(chǔ)單元;由const說(shuō)明的標(biāo)說(shuō)明的標(biāo)識(shí)符是一個(gè)不可更改的左值,編譯時(shí)要給它分配存儲(chǔ)單元。識(shí)符是一個(gè)不可更改的左值,編譯時(shí)要給它分配存儲(chǔ)單元。 C語(yǔ)言程序設(shè)計(jì)語(yǔ)言程序設(shè)計(jì)應(yīng)用舉例:計(jì)算圓柱體的體積應(yīng)用舉例:計(jì)算圓柱體的體積V=r2h#include stdio.hvoid main ( ) double

22、v,r,h; printf (input r,h:); scanf (%lf,%lf,&r,&h); v=3.14159 *r*r*h; printf (v=%lfn,v);如果使用符號(hào)常量:如果使用符號(hào)常量:#include stdio.h#define PI 3.14159 void main ( ) double v,r,h; printf (input r,h:); scanf (%lf,%lf,&r,&h); v=PI *r*r*h; printf (v=%lfn,v);C語(yǔ)言程序設(shè)計(jì)語(yǔ)言程序設(shè)計(jì)2.2 常量與變量1. 變量的屬性三要素:變量名,變量的

23、地址 ,變量的值。2. 在選擇變量名和其它標(biāo)識(shí)符時(shí),應(yīng)注意做到“見(jiàn)名知意”,以增加程序的可讀性。3. 在語(yǔ)言中,要求對(duì)所有用到的變量“先定義,后使用”,否則,在編譯時(shí)會(huì)指出有關(guān)出錯(cuò)信息。 2.2.2 變量含義:其值在程序運(yùn)行期間可以改變的量。C語(yǔ)言程序設(shè)計(jì)語(yǔ)言程序設(shè)計(jì)2.2 常量與變量2.2.2 變量定義變量的方法: int i; int k,j; long a; float b; double d; char c1; 而:int 3a; 是錯(cuò)誤的,因?yàn)樽兞康钠鹈蠘?biāo)識(shí)符的命名規(guī)則。int i;i=3;的實(shí)質(zhì)是:的實(shí)質(zhì)是: 1. 給變量給變量i在內(nèi)存中開(kāi)辟一塊空間(兩個(gè)字節(jié))出來(lái),這塊空在

24、內(nèi)存中開(kāi)辟一塊空間(兩個(gè)字節(jié))出來(lái),這塊空間用間用i做標(biāo)識(shí)。此時(shí)的做標(biāo)識(shí)。此時(shí)的i沒(méi)有值,也就是說(shuō),這些空間是空的。沒(méi)有值,也就是說(shuō),這些空間是空的。 2. 把整數(shù)把整數(shù)3轉(zhuǎn)換為帶符號(hào)的轉(zhuǎn)換為帶符號(hào)的16位二進(jìn)制放到此空間中。位二進(jìn)制放到此空間中。i變量名0123456變量的地址地址內(nèi)存7891011123的二進(jìn)制變量的值C語(yǔ)言程序設(shè)計(jì)語(yǔ)言程序設(shè)計(jì)給變量賦初值有兩種方式:給變量賦初值有兩種方式:一是通過(guò)賦值語(yǔ)句置初一是通過(guò)賦值語(yǔ)句置初值(如值(如i=0;););另一個(gè)方式是在變量說(shuō)明時(shí)給出初值另一個(gè)方式是在變量說(shuō)明時(shí)給出初值稱為初始化,格式為:稱為初始化,格式為:類型區(qū)分符類型區(qū)分符 變量名變

25、量名=表達(dá)式表達(dá)式,;如:如: int age=15,index=1,i=0,j=0; int i=j=0; 非法。非法。 int i,j=0; j被初始化為被初始化為0;i的初值不確定。的初值不確定。 char c=y; double esp=1.0e-5;C語(yǔ)言程序設(shè)計(jì)語(yǔ)言程序設(shè)計(jì)2.3 運(yùn)算符和表達(dá)式分類名稱運(yùn)算符算術(shù)運(yùn)算符+、-、*、/、%、+、-關(guān)系運(yùn)算符、=、=、!=邏輯運(yùn)算符&、|、!位運(yùn)算符、|、&賦值運(yùn)算符=及其擴(kuò)展賦值運(yùn)算符條件運(yùn)算符? :逗號(hào)運(yùn)算符,指針運(yùn)算符*、&求字節(jié)數(shù)運(yùn)算符sizeof強(qiáng)制類型轉(zhuǎn)換運(yùn)算符(類型)分量運(yùn)算符. 、-下標(biāo)運(yùn)算符 其

26、他函數(shù)運(yùn)算符( ) C語(yǔ)言提供了13類,共計(jì)34種運(yùn)算符。據(jù)運(yùn)算符的運(yùn)算對(duì)象的個(gè)數(shù),C語(yǔ)言的運(yùn)算符分為單目運(yùn)算符、雙目運(yùn)算符和三目運(yùn)算符,如單目+,雙目 = 7=51 0 C語(yǔ)言程序設(shè)計(jì)語(yǔ)言程序設(shè)計(jì)結(jié)果類型一定為結(jié)果類型一定為int,如果操作數(shù)關(guān)系成立則結(jié)果為非如果操作數(shù)關(guān)系成立則結(jié)果為非0(一般(一般為為1),否則為),否則為0。注意注意C語(yǔ)言中沒(méi)有表示邏輯真值和邏輯假值的數(shù)據(jù)。任何非語(yǔ)言中沒(méi)有表示邏輯真值和邏輯假值的數(shù)據(jù)。任何非0值值(一般為非(一般為非0整數(shù))都表示邏輯真,整數(shù)整數(shù))都表示邏輯真,整數(shù)0表示邏輯假。表示邏輯假。如:如:a!=b 表達(dá)式值為非表達(dá)式值為非0,50+70=10

27、0.0 表達(dá)式值為表達(dá)式值為0.如果用浮點(diǎn)數(shù)比較來(lái)測(cè)試某個(gè)條件如果用浮點(diǎn)數(shù)比較來(lái)測(cè)試某個(gè)條件,則可能永遠(yuǎn)得不到所希望,則可能永遠(yuǎn)得不到所希望的結(jié)果。如設(shè)的結(jié)果。如設(shè)x,y為浮點(diǎn)變量,則表達(dá)式:為浮點(diǎn)變量,則表達(dá)式:x/y*y= =x 值可能不成立。值可能不成立。若需要判別兩實(shí)數(shù)是否大約相等,可用下式表示:若需要判別兩實(shí)數(shù)是否大約相等,可用下式表示:fabs(y-x)e-5 數(shù)學(xué)中數(shù)學(xué)中axb與與C中中a=x=b含義不同含義不同。若若a=0,b=0.5,x=0.3。則執(zhí)行。則執(zhí)行 “a=x=b”時(shí)先求時(shí)先求a=x得得1(真)(真)再執(zhí)行再執(zhí)行1=b得得0(假)。(假)。為判別為判別x是否在區(qū)間是

28、否在區(qū)間a,b內(nèi)應(yīng)為:內(nèi)應(yīng)為: a=x & x278在數(shù)學(xué)中不允許,在在數(shù)學(xué)中不允許,在C中是允許的。中是允許的。按自左向右的原則:按自左向右的原則:52為為1 17為為0 08為為0整個(gè)表達(dá)式為的值整個(gè)表達(dá)式為的值0ijj-1 結(jié)果永遠(yuǎn)為結(jié)果永遠(yuǎn)為1 關(guān)系表達(dá)式的值為關(guān)系表達(dá)式的值為,也可看作整型表達(dá)式也可看作整型表達(dá)式。如:。如:int i=1,j=7,a;a=i+(j%4!=0);最后最后a的值為的值為 字符比較按字符比較按ASC碼進(jìn)行碼進(jìn)行ba為為aA為為a=x+1=a ) &(c=z ) 或或 c=a其結(jié)果:如果變量其結(jié)果:如果變量c的值是小寫(xiě)字母,則上式為真(非的值

29、是小寫(xiě)字母,則上式為真(非0)否則為否則為0。d9 若若d為非數(shù)字時(shí),表達(dá)式為非為非數(shù)字時(shí),表達(dá)式為非0 。否則為。否則為0!i等價(jià)于等價(jià)于 i= =0 但但!i 比比i= =0效率高,若效率高,若c為字符型,檢查為字符型,檢查c 是否為空白字符時(shí)是否為空白字符時(shí) 用用!c 比比 c= =0好好如果判斷數(shù)字字符如果判斷數(shù)字字符: D=0& d1&k=i+j 其結(jié)果整個(gè)表達(dá)式的值為(假),其結(jié)果整個(gè)表達(dá)式的值為(假),k的值為。的值為。 0 & ()對(duì)于邏輯或(對(duì)于邏輯或(|)運(yùn)算,當(dāng)左操作數(shù)為非(真)時(shí)整個(gè))運(yùn)算,當(dāng)左操作數(shù)為非(真)時(shí)整個(gè)表達(dá)式的值已確定為真,則右操作

30、數(shù)根本就不計(jì)算。表達(dá)式的值已確定為真,則右操作數(shù)根本就不計(jì)算。 如:如:int i=1,j=1,k=1; i=1|k=i+j 其結(jié)果整個(gè)表達(dá)式的值為其結(jié)果整個(gè)表達(dá)式的值為1(真),(真),k的值為。的值為。 1 | ()C語(yǔ)言程序設(shè)計(jì)語(yǔ)言程序設(shè)計(jì)2.3.4 自增、自減運(yùn)算自增、自減運(yùn)算自增和自減運(yùn)算符包括:自增和自減運(yùn)算符包括:+(增(增1) -(減減1) “+”和和“-”是單目運(yùn)算符,操作數(shù)必須是可更改是單目運(yùn)算符,操作數(shù)必須是可更改的的左值表達(dá)式左值表達(dá)式。左值表達(dá)式是一個(gè)表示存儲(chǔ)單元的表達(dá)式,一般為左值表達(dá)式是一個(gè)表示存儲(chǔ)單元的表達(dá)式,一般為不帶不帶const說(shuō)明的變量名。帶說(shuō)明的變量名

31、。帶const說(shuō)明的標(biāo)識(shí)符是不可說(shuō)明的標(biāo)識(shí)符是不可更改的左值表達(dá)式。更改的左值表達(dá)式。可更改的左值表達(dá)式包括:基本類型的變量名、下可更改的左值表達(dá)式包括:基本類型的變量名、下標(biāo)表達(dá)式、指針變量名和間接訪問(wèn)表達(dá)式(指針變標(biāo)表達(dá)式、指針變量名和間接訪問(wèn)表達(dá)式(指針變量)、結(jié)構(gòu)成員選擇表達(dá)式和結(jié)構(gòu)變量名。用()括起量)、結(jié)構(gòu)成員選擇表達(dá)式和結(jié)構(gòu)變量名。用()括起來(lái)的左值表達(dá)式也是左值表達(dá)式。來(lái)的左值表達(dá)式也是左值表達(dá)式。C語(yǔ)言程序設(shè)計(jì)語(yǔ)言程序設(shè)計(jì)2.3.4 自增、自減運(yùn)算自增、自減運(yùn)算“+ +”將操作數(shù)加將操作數(shù)加1,“ -”將操作數(shù)減將操作數(shù)減1,結(jié)果類型與操,結(jié)果類型與操作數(shù)類型相同。整型或浮點(diǎn)

32、型操作數(shù)按整型數(shù)值作數(shù)類型相同。整型或浮點(diǎn)型操作數(shù)按整型數(shù)值1增加或減少,增加或減少,指針類型操作數(shù)以后講。指針類型操作數(shù)以后講?!? +”或或 “-”可以出現(xiàn)在操作數(shù)前面(前綴式)或后可以出現(xiàn)在操作數(shù)前面(前綴式)或后面(后綴式)面(后綴式) 如如 +n - -n n+ n- -。前綴式先將操作數(shù)增(減)前綴式先將操作數(shù)增(減),然后取操作數(shù)的新值作,然后取操作數(shù)的新值作為表達(dá)式的結(jié)果。為表達(dá)式的結(jié)果。例如若例如若n=1 則則+n結(jié)果為結(jié)果為2,n的新值為的新值為2。后綴式將操作數(shù)增(減)后綴式將操作數(shù)增(減)1之前之前的值作為表達(dá)式的結(jié)果。的值作為表達(dá)式的結(jié)果。操作數(shù)的增(減)操作數(shù)的增(減)1運(yùn)算是在引用表達(dá)式的值之后完成的稱為運(yùn)算是在引用表達(dá)式的值之后完成的稱為后綴后綴+(或(或)的計(jì)算延遲。一直延遲到出現(xiàn)下面情況時(shí),)的計(jì)算延遲。一直延遲到出現(xiàn)下面情況時(shí),操作數(shù)才增(減)。操作數(shù)才增(減)。C語(yǔ)言程序設(shè)計(jì)語(yǔ)言程序設(shè)計(jì)一直延遲到出現(xiàn)下面情況時(shí),操作數(shù)才增(減一直延遲到出現(xiàn)

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論