




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、第第2 2章章 C C的基本數(shù)據(jù)類型及運(yùn)算的基本數(shù)據(jù)類型及運(yùn)算 YYHYYH版版第第2 2章章 C/C+C/C+的基本數(shù)據(jù)類型及運(yùn)算的基本數(shù)據(jù)類型及運(yùn)算 2.1 標(biāo)識(shí)符標(biāo)識(shí)符 2.2 數(shù)據(jù)類型數(shù)據(jù)類型 2.3 常量常量 2.4 變量變量 2.5 運(yùn)算符運(yùn)算符 2.6 表達(dá)式表達(dá)式 2.7 數(shù)據(jù)類型數(shù)據(jù)類型,運(yùn)算符與表達(dá)式舉例運(yùn)算符與表達(dá)式舉例 教材上教材上的第二的第二章章2.3第第2 2章章 C C的基本數(shù)據(jù)類型及運(yùn)算的基本數(shù)據(jù)類型及運(yùn)算 YYHYYH版版 2.1 標(biāo)識(shí)符標(biāo)識(shí)符:用來標(biāo)識(shí)變量名、函數(shù)名、數(shù)組名、對(duì)象名用來標(biāo)識(shí)變量名、函數(shù)名、數(shù)組名、對(duì)象名(含控件名含控件名)、結(jié)構(gòu)體名、類名等的
2、名稱。、結(jié)構(gòu)體名、類名等的名稱。 說說 明明: (1) 命名規(guī)則命名規(guī)則:首字符為字母或下劃線:首字符為字母或下劃線“_”(注意注意:非中劃線非中劃線“-”);后可續(xù)大小寫字母、數(shù)字和下劃線;長度不超過;后可續(xù)大小寫字母、數(shù)字和下劃線;長度不超過32。 如:如:count,est123,High_balance,PI; 正確正確 1count, hi!there,highbalance,a+b 不正確不正確 (2) 大小寫字母有別大小寫字母有別: C/C+語言與其他語言規(guī)定不同,語言與其他語言規(guī)定不同, 標(biāo)標(biāo)識(shí)符中大小寫字母有區(qū)別。程序中各種標(biāo)識(shí)符、各種語句基本識(shí)符中大小寫字母有區(qū)別。程序中各
3、種標(biāo)識(shí)符、各種語句基本上采用小寫字母表示,如變量名、數(shù)組名、函數(shù)名等。而大寫上采用小寫字母表示,如變量名、數(shù)組名、函數(shù)名等。而大寫字母只用來定義宏名等,用的不多。字母只用來定義宏名等,用的不多。 第第2 2章章 C C的基本數(shù)據(jù)類型及運(yùn)算的基本數(shù)據(jù)類型及運(yùn)算 YYHYYH版版 (3) 見名知意見名知意:在:在程序中程序中對(duì)對(duì)用到用到的的標(biāo)識(shí)符標(biāo)識(shí)符應(yīng)做到見名知意,應(yīng)做到見名知意,以提高程以提高程序的可讀性。如用序的可讀性。如用sum表示和,表示和,score表示成績(jī),表示成績(jī),max表示最大值等。表示最大值等。 (4) 關(guān)鍵字關(guān)鍵字:C/C+規(guī)定了許多個(gè)關(guān)鍵字規(guī)定了許多個(gè)關(guān)鍵字(保留字保留字)
4、,不能,不能再用作各種標(biāo)識(shí)符。下面列出再用作各種標(biāo)識(shí)符。下面列出32個(gè)關(guān)鍵字:個(gè)關(guān)鍵字:auto, break, case, 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等。用來表示特定的語義,等。用來表示特定的語義, 如語句
5、、預(yù)處理的如語句、預(yù)處理的命令命令 :define, elif, else, endif, error, if, ifdef, ifndef, include, line, progma, undef)。)。 第第2 2章章 C C的基本數(shù)據(jù)類型及運(yùn)算的基本數(shù)據(jù)類型及運(yùn)算 YYHYYH版版2.2 基本數(shù)據(jù)類型基本數(shù)據(jù)類型 邏輯型邏輯型 bool: true-1或非或非0, false-0; VC: BOOL注:注:任何數(shù)據(jù)變量在使用任何數(shù)據(jù)變量在使用前必須定義其數(shù)據(jù)類型。前必須定義其數(shù)據(jù)類型。第第2 2章章 C C的基本數(shù)據(jù)類型及運(yùn)算的基本數(shù)據(jù)類型及運(yùn)算 YYHYYH版版#include vo
6、id main(void) const int PRICE=30; /定義單價(jià)定義單價(jià) int num,total; float v ,r,h; num=10; total=num*PRICE; /計(jì)算價(jià)格計(jì)算價(jià)格 couttotal endl; r=2.5; h=3.2; v=3.14159*r*r*h; /計(jì)算圓柱體體積計(jì)算圓柱體體積 coutv endl; 常量常量變量變量變量先定變量先定義后使用義后使用第第2 2章章 C C的基本數(shù)據(jù)類型及運(yùn)算的基本數(shù)據(jù)類型及運(yùn)算 YYHYYH版版2.2.1 基本數(shù)據(jù)類型基本數(shù)據(jù)類型 1. 基本數(shù)據(jù)類型基本數(shù)據(jù)類型 表 2.1 C+基本數(shù)據(jù)類型的長度和
7、值域 第第2 2章章 C C的基本數(shù)據(jù)類型及運(yùn)算的基本數(shù)據(jù)類型及運(yùn)算 YYHYYH版版 說明:說明: (1)字符型字符型(char)變量:表示單個(gè)變量:表示單個(gè)ASCII碼字符且用單引號(hào)碼字符且用單引號(hào)表示,即存貯表示,即存貯8位二進(jìn)制數(shù)位二進(jìn)制數(shù)(一般是一般是ASCII碼值碼值)。 (2)整型整型(int)變量:用于存貯整數(shù)。因其字長有限,故可表示變量:用于存貯整數(shù)。因其字長有限,故可表示的整數(shù)的范圍也有限的整數(shù)的范圍也有限(16B)。 (3)單精度實(shí)型單精度實(shí)型(float,32B)和雙精度實(shí)型和雙精度實(shí)型(double,64B)變量:變量:用于存貯實(shí)數(shù),實(shí)數(shù)具有整數(shù)和小數(shù)兩部分或是帶指數(shù)
8、的數(shù)用于存貯實(shí)數(shù),實(shí)數(shù)具有整數(shù)和小數(shù)兩部分或是帶指數(shù)的數(shù)據(jù)。據(jù)。 (4)無值型無值型(void)有兩種用途:第一是明確地表示一個(gè)函數(shù)不有兩種用途:第一是明確地表示一個(gè)函數(shù)不返回任何值;第二返回任何值;第二是產(chǎn)生同一類型的指針。是產(chǎn)生同一類型的指針。 第第2 2章章 C C的基本數(shù)據(jù)類型及運(yùn)算的基本數(shù)據(jù)類型及運(yùn)算 YYHYYH版版 2. 數(shù)據(jù)數(shù)據(jù)類型修飾符類型修飾符 除了除了void類型外,基本數(shù)據(jù)類型可以帶有各種修飾前綴。類型外,基本數(shù)據(jù)類型可以帶有各種修飾前綴。修飾符用于明確基本數(shù)據(jù)類型的含義,以準(zhǔn)確地適應(yīng)不同情修飾符用于明確基本數(shù)據(jù)類型的含義,以準(zhǔn)確地適應(yīng)不同情況下的要求。類型修飾符種類如
9、下:況下的要求。類型修飾符種類如下: signed 有符號(hào)有符號(hào) unsigned 無符號(hào)無符號(hào) long 長長 short 短短 如:如:short int 表示表示16位短型整數(shù)位短型整數(shù)(和和int同同);long int表示表示32位位長型整數(shù)。其他見下表。長型整數(shù)。其他見下表。第第2 2章章 C C的基本數(shù)據(jù)類型及運(yùn)算的基本數(shù)據(jù)類型及運(yùn)算 YYHYYH版版表表 2.2 C+基本類型及其修飾符的所有組合基本類型及其修飾符的所有組合 比較比較第第2 2章章 C C的基本數(shù)據(jù)類型及運(yùn)算的基本數(shù)據(jù)類型及運(yùn)算 YYHYYH版版 說明說明 (1)不同的計(jì)算機(jī)系統(tǒng)對(duì)各類數(shù)據(jù)所占內(nèi)存字節(jié)數(shù)有不同的規(guī)
10、定,如int型有的系統(tǒng)占16位,有的占32位。long double型有的占128位,有的占64位。(2)有符號(hào)(signed)和無符號(hào)(unsigned)的整型量的區(qū)別在于它們的最高位的定義不同。對(duì)有符號(hào)的整型(signed int),其最高位為符號(hào)位,其余位表示數(shù)值大小。最高位為0,則該整數(shù)為正;最高位為1,則該整數(shù)為負(fù)。例如用8位二進(jìn)制表示時(shí): 第第2 2章章 C C的基本數(shù)據(jù)類型及運(yùn)算的基本數(shù)據(jù)類型及運(yùn)算 YYHYYH版版 補(bǔ)充:補(bǔ)充:大部分計(jì)算機(jī)表示有符號(hào)數(shù)時(shí)都使用二進(jìn)制補(bǔ)碼補(bǔ)碼。原因及細(xì)節(jié)在微機(jī)原理課上學(xué)習(xí)(即其加減均可變成其補(bǔ)碼的加法)。補(bǔ)碼補(bǔ)碼的求法很簡(jiǎn)單:正數(shù)補(bǔ)碼即原碼正數(shù)補(bǔ)
11、碼即原碼(即二進(jìn)制碼即二進(jìn)制碼);負(fù)數(shù);負(fù)數(shù)的補(bǔ)碼是將其對(duì)應(yīng)原碼的各位的補(bǔ)碼是將其對(duì)應(yīng)原碼的各位(除符號(hào)除符號(hào)位外位外)按位求反,然后加按位求反,然后加1。上述四個(gè)數(shù)用 8 位二進(jìn)制表示有符號(hào)數(shù)時(shí)機(jī)內(nèi)補(bǔ)碼值為: 第第2 2章章 C C的基本數(shù)據(jù)類型及運(yùn)算的基本數(shù)據(jù)類型及運(yùn)算 YYHYYH版版 有符號(hào)整數(shù)所能表示的最大數(shù)的絕對(duì)值只是無符號(hào)數(shù)的一半 。 例 , 3 2 7 6 7 的 有 符 號(hào) 整 數(shù) ( 2 B ) 表 示 為 : 0111111111111111(2-115 )如果最高位設(shè)置為1,則該數(shù)就會(huì)被當(dāng)作-1(按補(bǔ)碼算)。然而,如將該數(shù)定義為無符號(hào)整型(unsigned int),那
12、么當(dāng)最高位設(shè)置為1時(shí),它就變成了65535 (2 -116) 。 2.2.2 構(gòu)造構(gòu)造/自定義數(shù)據(jù)類型自定義數(shù)據(jù)類型 數(shù)組數(shù)組是一組連續(xù)、有序的存放在一起的具有相同類型的數(shù)是一組連續(xù)、有序的存放在一起的具有相同類型的數(shù)據(jù)。據(jù)。 結(jié)構(gòu)體結(jié)構(gòu)體是將不同類型的數(shù)據(jù)按一定順序存放在一起的數(shù)據(jù)是將不同類型的數(shù)據(jù)按一定順序存放在一起的數(shù)據(jù)結(jié)構(gòu)。相當(dāng)于表格。結(jié)構(gòu)。相當(dāng)于表格。 第第2 2章章 C C的基本數(shù)據(jù)類型及運(yùn)算的基本數(shù)據(jù)類型及運(yùn)算 YYHYYH版版 共用體共用體是將不同類型的數(shù)據(jù)都存放在同一起始地址的內(nèi)存是將不同類型的數(shù)據(jù)都存放在同一起始地址的內(nèi)存單元中,單元中, 共用一段內(nèi)存以節(jié)省內(nèi)存單元。類同于
13、結(jié)構(gòu)體。共用一段內(nèi)存以節(jié)省內(nèi)存單元。類同于結(jié)構(gòu)體。 枚舉枚舉是只有幾種可能的值,將其一一列舉出來。實(shí)際是用是只有幾種可能的值,將其一一列舉出來。實(shí)際是用符號(hào)來表示若干個(gè)可取的整型值,符號(hào)來表示若干個(gè)可取的整型值, 它是整型的一個(gè)子集。后它是整型的一個(gè)子集。后面分別介紹。面分別介紹。 2.2.3 指針類型指針類型 指針指針是是C+語言中一個(gè)重要概念??梢杂行У乇硎緩?fù)雜的語言中一個(gè)重要概念。可以有效地表示復(fù)雜的數(shù)據(jù)結(jié)構(gòu);能動(dòng)態(tài)分配內(nèi)存;能方便有效地使用字符串、數(shù)組;數(shù)據(jù)結(jié)構(gòu);能動(dòng)態(tài)分配內(nèi)存;能方便有效地使用字符串、數(shù)組;能直接處理內(nèi)存地址等。能直接處理內(nèi)存地址等。 類類是將操作數(shù)是將操作數(shù)(數(shù)據(jù)成
14、員數(shù)據(jù)成員)和操作功能和操作功能(函數(shù)成員函數(shù)成員)封裝在一起封裝在一起的的數(shù)據(jù)結(jié)構(gòu)數(shù)據(jù)結(jié)構(gòu)。 第第2 2章章 C C的基本數(shù)據(jù)類型及運(yùn)算的基本數(shù)據(jù)類型及運(yùn)算 YYHYYH版版 2.3 常常 量量 2.3.1 數(shù)值常量數(shù)值常量 1. 整數(shù)整數(shù)(型常量型常量) 整型常量也稱為整型常數(shù)或整數(shù)。整型常量也稱為整型常數(shù)或整數(shù)。C+整型常量按進(jìn)制整型常量按進(jìn)制分可分為十進(jìn)制整數(shù),八進(jìn)制整數(shù)和十六進(jìn)制整數(shù)。分可分為十進(jìn)制整數(shù),八進(jìn)制整數(shù)和十六進(jìn)制整數(shù)。 1) 十進(jìn)制整數(shù)十進(jìn)制整數(shù) 十進(jìn)制整數(shù)以十進(jìn)制整數(shù)以正負(fù)號(hào)開頭正負(fù)號(hào)開頭,后跟,后跟09的若干位數(shù)字構(gòu)成。的若干位數(shù)字構(gòu)成。如如123, -456, 0等
15、。等。 第第2 2章章 C C的基本數(shù)據(jù)類型及運(yùn)算的基本數(shù)據(jù)類型及運(yùn)算 YYHYYH版版 2) 八進(jìn)制整數(shù)八進(jìn)制整數(shù) 八進(jìn)制整數(shù)是以八進(jìn)制整數(shù)是以正負(fù)號(hào)開頭正負(fù)號(hào)開頭,第一位數(shù)字一定是,第一位數(shù)字一定是0,后面,后面跟跟07的數(shù)字。如八進(jìn)制數(shù)的數(shù)字。如八進(jìn)制數(shù)0123,相當(dāng)于十進(jìn)制數(shù),相當(dāng)于十進(jìn)制數(shù)83;八進(jìn)制;八進(jìn)制數(shù)數(shù)-012,相當(dāng)于十進(jìn)制數(shù),相當(dāng)于十進(jìn)制數(shù)-10。 八進(jìn)制數(shù)與十進(jìn)制數(shù)的轉(zhuǎn)換,方法如下:八進(jìn)制數(shù)與十進(jìn)制數(shù)的轉(zhuǎn)換,方法如下: 0123=1(8 2)+2(8 1)+3(8 0)=64+16+3=83 3) 十六進(jìn)制整數(shù)十六進(jìn)制整數(shù) 十六進(jìn)制整數(shù)是以十六進(jìn)制整數(shù)是以正負(fù)號(hào)開頭正負(fù)
16、號(hào)開頭,前兩位為,前兩位為0 x,后面跟,后面跟09和和af的數(shù)字。其中的數(shù)字。其中a代表代表10, b代表代表11, 其余類推。其余類推。第第2 2章章 C C的基本數(shù)據(jù)類型及運(yùn)算的基本數(shù)據(jù)類型及運(yùn)算 YYHYYH版版 如十六進(jìn)制數(shù)如十六進(jìn)制數(shù)0 x123,相當(dāng)于十進(jìn)制數(shù),相當(dāng)于十進(jìn)制數(shù)291;十六進(jìn)制數(shù);十六進(jìn)制數(shù) -0 x12,相當(dāng)于十進(jìn)制數(shù),相當(dāng)于十進(jìn)制數(shù)-18。 十六進(jìn)制數(shù)轉(zhuǎn)換成十進(jìn)制數(shù),方法如下:十六進(jìn)制數(shù)轉(zhuǎn)換成十進(jìn)制數(shù),方法如下: 0 x123=1(162)+2(16 1)+3(160)=256+32+3=291 0 x1ab=10 x1ab=1(16(162)+102)+10(
17、16(161)+111)+11(16(160)=256+160+11=4270)=256+160+11=427 4) (補(bǔ)充補(bǔ)充)二進(jìn)制數(shù),二進(jìn)制數(shù), 字節(jié),字節(jié), 字,字, 位:計(jì)算機(jī)內(nèi)所有的信位:計(jì)算機(jī)內(nèi)所有的信息均用二進(jìn)制表示,即計(jì)算機(jī)內(nèi)只有息均用二進(jìn)制表示,即計(jì)算機(jī)內(nèi)只有0和和1,也只認(rèn)識(shí)由,也只認(rèn)識(shí)由0和和1組成的程序或數(shù)據(jù)。為什么在計(jì)算機(jī)中要使用二進(jìn)制數(shù)呢組成的程序或數(shù)據(jù)。為什么在計(jì)算機(jī)中要使用二進(jìn)制數(shù)呢? 因因?yàn)槎M(jìn)制數(shù)運(yùn)算規(guī)則簡(jiǎn)單,用物理器材容易實(shí)現(xiàn),如電壓的為二進(jìn)制數(shù)運(yùn)算規(guī)則簡(jiǎn)單,用物理器材容易實(shí)現(xiàn),如電壓的高與低,高與低, 開關(guān)的開與關(guān),脈沖的有與無等等。開關(guān)的開與關(guān),脈沖
18、的有與無等等。 第第2 2章章 C C的基本數(shù)據(jù)類型及運(yùn)算的基本數(shù)據(jù)類型及運(yùn)算 YYHYYH版版 一個(gè)二進(jìn)制數(shù)一個(gè)二進(jìn)制數(shù)0或或1, 稱為稱為“位位”(bit)。 在計(jì)算機(jī)存貯器中,為了便于管理,常將在計(jì)算機(jī)存貯器中,為了便于管理,常將 8 個(gè)位稱為一個(gè)位稱為一個(gè)個(gè)“字節(jié)字節(jié)”(byte),每個(gè)字節(jié)存放在一個(gè),每個(gè)字節(jié)存放在一個(gè)存貯單元存貯單元中,每個(gè)中,每個(gè)單元單元賦于一個(gè)賦于一個(gè)存貯地址存貯地址。 計(jì)算機(jī)在處理數(shù)據(jù)時(shí),每一個(gè)數(shù)據(jù)是一個(gè)計(jì)算機(jī)在處理數(shù)據(jù)時(shí),每一個(gè)數(shù)據(jù)是一個(gè)“字字”(word),字是由若干字節(jié)組成。字可以是字是由若干字節(jié)組成。字可以是2個(gè)字節(jié)個(gè)字節(jié)(整數(shù)整數(shù)),4個(gè)字節(jié)個(gè)字節(jié)(
19、稱稱為為4*8=32位字長位字長),8個(gè)字節(jié)個(gè)字節(jié)(稱為稱為8*8=64位字長位字長) 等等等。等。 2. 實(shí)數(shù)實(shí)數(shù): 單精度單精度(float)和和雙精度雙精度(double)均有均有定點(diǎn)數(shù)和浮點(diǎn)數(shù)定點(diǎn)數(shù)和浮點(diǎn)數(shù) 第第2 2章章 C C的基本數(shù)據(jù)類型及運(yùn)算的基本數(shù)據(jù)類型及運(yùn)算 YYHYYH版版 1) 定點(diǎn)數(shù)定點(diǎn)數(shù)(小數(shù)形式小數(shù)形式):?jiǎn)尉龋簡(jiǎn)尉?(float)實(shí)型常量實(shí)型常量 表示:表示:一個(gè)實(shí)數(shù)可是正負(fù)號(hào)開頭,有若干位一個(gè)實(shí)數(shù)可是正負(fù)號(hào)開頭,有若干位09的整的整數(shù)數(shù),后跟一個(gè)小數(shù)點(diǎn)后跟一個(gè)小數(shù)點(diǎn)(必須有必須有),再有若干位小數(shù)部分。如,再有若干位小數(shù)部分。如123.456, -21.3
20、7。 數(shù)數(shù)12用實(shí)數(shù)表示必須寫成用實(shí)數(shù)表示必須寫成12.0或或12.。 范圍:范圍:設(shè)計(jì)時(shí)規(guī)定了實(shí)數(shù)有數(shù)值范圍和有效位數(shù)的。設(shè)計(jì)時(shí)規(guī)定了實(shí)數(shù)有數(shù)值范圍和有效位數(shù)的。一般實(shí)數(shù)僅有七位有效數(shù)字,故實(shí)數(shù)的數(shù)值范圍是一般實(shí)數(shù)僅有七位有效數(shù)字,故實(shí)數(shù)的數(shù)值范圍是3.410-38|x|3.41038,當(dāng)小于,當(dāng)小于3.410-38時(shí)按時(shí)按0對(duì)待對(duì)待(下下溢溢), 而大于而大于3.41038時(shí)則上溢,一個(gè)溢出的數(shù)是無意義時(shí)則上溢,一個(gè)溢出的數(shù)是無意義的。的。第第2 2章章 C C的基本數(shù)據(jù)類型及運(yùn)算的基本數(shù)據(jù)類型及運(yùn)算 YYHYYH版版 2) 浮點(diǎn)數(shù)浮點(diǎn)數(shù)(指數(shù)形式指數(shù)形式) 實(shí)數(shù)的指數(shù)形式也稱為科學(xué)表示法
21、,一個(gè)實(shí)數(shù)的指數(shù)形實(shí)數(shù)的指數(shù)形式也稱為科學(xué)表示法,一個(gè)實(shí)數(shù)的指數(shù)形式分成式分成尾數(shù)部分尾數(shù)部分和和指數(shù)部分指數(shù)部分。尾數(shù)部分可以是整數(shù)形式或小。尾數(shù)部分可以是整數(shù)形式或小數(shù)形式,指數(shù)部分是一個(gè)字母數(shù)形式,指數(shù)部分是一個(gè)字母“e”后跟一個(gè)整數(shù)。如后跟一個(gè)整數(shù)。如123e+01,-456.78e-01, 0e0等。由于實(shí)數(shù)僅有等。由于實(shí)數(shù)僅有7位有效數(shù)字,位有效數(shù)字,因此在內(nèi)存中用三個(gè)字節(jié)來表示尾數(shù),因此在內(nèi)存中用三個(gè)字節(jié)來表示尾數(shù), 用一個(gè)字節(jié)來表示用一個(gè)字節(jié)來表示指數(shù),所以指數(shù)部分用兩位整數(shù)來表示。指數(shù),所以指數(shù)部分用兩位整數(shù)來表示。 在書寫時(shí)在書寫時(shí)“e”與與“E”完全等價(jià)。完全等價(jià)。“e”
22、前面必須有數(shù)字,前面必須有數(shù)字,“e”后面必須是整數(shù)。后面必須是整數(shù)。 尾數(shù)尾數(shù) 指數(shù)指數(shù)第第2 2章章 C C的基本數(shù)據(jù)類型及運(yùn)算的基本數(shù)據(jù)類型及運(yùn)算 YYHYYH版版 3) 雙精度常量雙精度常量(double) 用雙精度常量來表示實(shí)數(shù)的有效位可達(dá)用雙精度常量來表示實(shí)數(shù)的有效位可達(dá)16位左右,故一個(gè)位左右,故一個(gè)雙精度常量在內(nèi)存中占雙精度常量在內(nèi)存中占8個(gè)字節(jié)。個(gè)字節(jié)。 長雙精度常量有長雙精度常量有19位有效數(shù)位有效數(shù)字,在內(nèi)存中字,在內(nèi)存中占占16個(gè)字節(jié)。個(gè)字節(jié)。 2.3.2 字符常量字符常量:用單引號(hào):用單引號(hào)括起來的單個(gè)字符。如括起來的單個(gè)字符。如A,a ,且一般用其對(duì)應(yīng)的,且一般用其
23、對(duì)應(yīng)的ASCII碼值表示碼值表示(前例分別是前例分別是65和和97,注意:大小寫字母的,注意:大小寫字母的ASCII碼相差碼相差32) 。 2.3.3 字符串常量字符串常量:用雙引號(hào):用雙引號(hào)“”“”括起來的字符串或文本。括起來的字符串或文本。如如“text”, “Text” , “程序設(shè)計(jì)程序設(shè)計(jì)”,其值為去掉,其值為去掉“”“”后的字符后的字符串或文本本身。串或文本本身。 2.3.4 轉(zhuǎn)義字符轉(zhuǎn)義字符:以斜杠:以斜杠“”開頭后跟一特定字符表示控開頭后跟一特定字符表示控制功能,見下表制功能,見下表 2.3 控制字符表示法??刂谱址硎痉?。 第第2 2章章 C C的基本數(shù)據(jù)類型及運(yùn)算的基本數(shù)據(jù)
24、類型及運(yùn)算 YYHYYH版版表表 2.3 控制字符表示法控制字符表示法 第第2 2章章 C C的基本數(shù)據(jù)類型及運(yùn)算的基本數(shù)據(jù)類型及運(yùn)算 YYHYYH版版2.3.4 字符串常量字符串常量 16進(jìn)制的進(jìn)制的ASCII碼碼第第2 2章章 C C的基本數(shù)據(jù)類型及運(yùn)算的基本數(shù)據(jù)類型及運(yùn)算 YYHYYH版版 字符常量字符常量 字符串常量字符串常量占占1B;存放;存放ASCII碼碼(如如a為為 或或16進(jìn)進(jìn)制的制的0 x61);單引號(hào);其值為對(duì)應(yīng)的;單引號(hào);其值為對(duì)應(yīng)的ASCII碼碼值;可參與運(yùn)算:值;可參與運(yùn)算:b=a+3(即即b=97+3=100)97占占n個(gè)字符個(gè)字符+1個(gè)個(gè)B;存放有序字符串;存放有
25、序字符串(如如“aty”)其尾必有其尾必有“0”結(jié)尾標(biāo)記;雙引號(hào);其值為有結(jié)尾標(biāo)記;雙引號(hào);其值為有序字符串本身;不可參與運(yùn)算序字符串本身;不可參與運(yùn)算;如:如:“a”:a0附:附:不同數(shù)據(jù)類型的轉(zhuǎn)換形式不同數(shù)據(jù)類型的轉(zhuǎn)換形式: (類型類型)表達(dá)式表達(dá)式 或或 類型類型(表達(dá)式表達(dá)式) 例例(char)3*3.14*x字符常量與字符串常量比較字符常量與字符串常量比較第第2 2章章 C C的基本數(shù)據(jù)類型及運(yùn)算的基本數(shù)據(jù)類型及運(yùn)算 YYHYYH版版 2.3.5 符號(hào)常量符號(hào)常量 1. 不帶參數(shù)不帶參數(shù)簡(jiǎn)單簡(jiǎn)單的的宏定義宏定義 宏定義宏定義命令命令#define用來為一個(gè)標(biāo)識(shí)符定義一個(gè)字符串,每用來
26、為一個(gè)標(biāo)識(shí)符定義一個(gè)字符串,每次遇到該標(biāo)識(shí)符時(shí)就用所定義的字符串替換它。這個(gè)標(biāo)識(shí)符叫次遇到該標(biāo)識(shí)符時(shí)就用所定義的字符串替換它。這個(gè)標(biāo)識(shí)符叫做宏名做宏名(常用大寫字母作為宏名常用大寫字母作為宏名),替換過程叫做宏替換或宏展開。,替換過程叫做宏替換或宏展開。宏定義命令宏定義命令#define的一般形式是:的一般形式是: define 宏名宏名 字符串字符串 宏名宏名=字符串字符串 例如用例如用PI表示數(shù)值表示數(shù)值3.14159,可以用宏定義,可以用宏定義define來說明:來說明: define PI 3.14159 在編譯時(shí),每遇到在編譯時(shí),每遇到PI就自動(dòng)用就自動(dòng)用3.14159代替,即宏展開
27、。其代替,即宏展開。其字字符串符串中可有已定義的中可有已定義的宏定義宏定義。 例如:例如: #define PI 3.14159 #define PI2 2*PI則在程序中出現(xiàn)的則在程序中出現(xiàn)的“PI2”處被處被“2*3.14159”來替換。來替換。第第2 2章章 C C的基本數(shù)據(jù)類型及運(yùn)算的基本數(shù)據(jù)類型及運(yùn)算 YYHYYH版版 注意注意宏替換僅是簡(jiǎn)單替換,本身無運(yùn)算和語法檢查功能。適宏替換僅是簡(jiǎn)單替換,本身無運(yùn)算和語法檢查功能。適宜復(fù)雜公式計(jì)算。又如:宜復(fù)雜公式計(jì)算。又如: #define PI 3.14159; area=PI*r*r; 經(jīng)過宏替換后,經(jīng)過宏替換后, 該語句展開為該語句展開
28、為: area=3.14159; *r*r; 經(jīng)編譯將出現(xiàn)經(jīng)編譯將出現(xiàn)語法錯(cuò)誤語法錯(cuò)誤(因有因有“;”而無法運(yùn)算而無法運(yùn)算,可去掉之即可可去掉之即可)。 #undef 宏名來終止其作用宏名來終止其作用(域域)。 例如:例如: #define PI 3.14159 void main( ) #undef PI第第2 2章章 C C的基本數(shù)據(jù)類型及運(yùn)算的基本數(shù)據(jù)類型及運(yùn)算 YYHYYH版版 例例 2.1 宏定義的使用。程序:宏定義的使用。程序: define R 3.0 define PI 3.1415926 define L 2*PI*R define S PI*R*R void main( )
29、 printf(L=%fn S=%fn, L, S); 經(jīng)過宏展開后,經(jīng)過宏展開后, printf函數(shù)調(diào)用語句被展開為:函數(shù)調(diào)用語句被展開為: printf(“L=%fn S=%fn”, 2*3.1415926*3.0, 3.1415926*3.0*3.0); 而在雙引號(hào)內(nèi)的而在雙引號(hào)內(nèi)的L, S將不被替換將不被替換,即字符串內(nèi)與宏名相同的即字符串內(nèi)與宏名相同的部分將不替換部分將不替換(因是格式說明因是格式說明)。 *2. 帶參數(shù)的帶參數(shù)的宏定義宏定義 它不是進(jìn)行簡(jiǎn)單的字符串替換,它不是進(jìn)行簡(jiǎn)單的字符串替換, 還要進(jìn)行參數(shù)替換。還要進(jìn)行參數(shù)替換。 其定其定義的一般形式為:義的一般形式為: de
30、fine 宏名宏名(參數(shù)表參數(shù)表) 字符串字符串運(yùn)行情況如下: L=18.849556S=28.274333第第2 2章章 C C的基本數(shù)據(jù)類型及運(yùn)算的基本數(shù)據(jù)類型及運(yùn)算 YYHYYH版版 其中字符串中包括參數(shù)表中所指定的參數(shù)。其中字符串中包括參數(shù)表中所指定的參數(shù)。 在使用時(shí),要將在使用時(shí),要將程序中宏名后的實(shí)際參數(shù)代入字符串中參數(shù)的位置。程序中宏名后的實(shí)際參數(shù)代入字符串中參數(shù)的位置。 例如:例如: define S(a, b) a*b area=S(3, 2); 經(jīng)編譯預(yù)處理,經(jīng)編譯預(yù)處理, 該語句被展開成該語句被展開成 area=3*2; 說明:說明: (1) 宏名和參數(shù)表左括號(hào)之間不能有
31、空格,宏名和參數(shù)表左括號(hào)之間不能有空格, 否則按不帶否則按不帶參宏替換了。參宏替換了。(2) 字符串中應(yīng)注意括號(hào)的使用,以保證運(yùn)算次序。字符串中應(yīng)注意括號(hào)的使用,以保證運(yùn)算次序。 如上例改成如上例改成 area=S(1+2, 2);經(jīng)展開后變成經(jīng)展開后變成area=1+2*2;這;這就不合我們的要求了。就不合我們的要求了。 此時(shí),此時(shí), 可改寫成可改寫成 define S(a, b) (a)*(b) area=S(1+2, 2) 經(jīng)展開后變成經(jīng)展開后變成 area=(1+2)*(2); 就不會(huì)出現(xiàn)錯(cuò)誤了。就不會(huì)出現(xiàn)錯(cuò)誤了。 第第2 2章章 C C的基本數(shù)據(jù)類型及運(yùn)算的基本數(shù)據(jù)類型及運(yùn)算 YYH
32、YYH版版 2.4 變變 量量 2.4.1 變量的定義變量的定義 1. 定義:定義: 類型類型 變量名表;變量名表; 這里,類型這里,類型(type)必須是必須是C/C+語言的有效數(shù)據(jù)類型。變量語言的有效數(shù)據(jù)類型。變量名表可以是一個(gè)或多個(gè)用逗號(hào)分隔標(biāo)識(shí)符名,最后以分號(hào)結(jié)名表可以是一個(gè)或多個(gè)用逗號(hào)分隔標(biāo)識(shí)符名,最后以分號(hào)結(jié)束。以下是一些變量定義的例子:束。以下是一些變量定義的例子: int i, j, num; float a, b, sum; unsigned int ui; char c, ch, name; double x, total; 2. 說明說明第第2 2章章 C C的基本數(shù)據(jù)類
33、型及運(yùn)算的基本數(shù)據(jù)類型及運(yùn)算 YYHYYH版版(1) 變量名變量名必須遵循的必須遵循的“先定義,后使用先定義,后使用”的原則,的原則,且是且是合法標(biāo)識(shí)符,定義時(shí)應(yīng)合法標(biāo)識(shí)符,定義時(shí)應(yīng) “見名知意見名知意” 。 (2) 變量可以在程序內(nèi)的三個(gè)地方定義:變量可以在程序內(nèi)的三個(gè)地方定義: 在在函數(shù)內(nèi)函數(shù)內(nèi)部,部, 在在函數(shù)的參數(shù)函數(shù)的參數(shù)(形參形參)中定義或在中定義或在所有的函數(shù)外所有的函數(shù)外部。由此定義的變量分別稱為局部變量、形式參數(shù)部。由此定義的變量分別稱為局部變量、形式參數(shù)(也是也是局部變量局部變量)和全局變量。和全局變量。 在不同地方定義的變量,其作用范圍在不同地方定義的變量,其作用范圍(即
34、作用域即作用域)不同。不同。在同一層次在同一層次(即同一作用域即同一作用域)定義的變量,不能與同一層次定義的變量,不能與同一層次/同作用域的數(shù)組、指針、函數(shù)和其它變量同名,不同作同作用域的數(shù)組、指針、函數(shù)和其它變量同名,不同作用域的變量定義可同名而互不干擾。用域的變量定義可同名而互不干擾。第第2 2章章 C C的基本數(shù)據(jù)類型及運(yùn)算的基本數(shù)據(jù)類型及運(yùn)算 YYHYYH版版2.4.2 各種類型的變量各種類型的變量 1. 整型變量整型變量 整型變量用來存放整型數(shù)值。整型變量可分為:基本型整型變量用來存放整型數(shù)值。整型變量可分為:基本型(int), 短整型短整型(short int或或short),長整
35、型,長整型(long int或或long)和無和無符號(hào)型符號(hào)型(unsigned int, unsigned short, unsigned long)。 2. 實(shí)型變量實(shí)型變量 實(shí)型變量分為單精度型實(shí)型變量分為單精度型(float)和雙精度型和雙精度型(double)兩類。兩類。其存放數(shù)據(jù)的差別是:?jiǎn)尉茸兞空计浯娣艛?shù)據(jù)的差別是:?jiǎn)尉茸兞空?個(gè)字節(jié)內(nèi)存單元,有個(gè)字節(jié)內(nèi)存單元,有7位有效數(shù)字,數(shù)值范圍在位有效數(shù)字,數(shù)值范圍在3.4e-383.4e+38之間。而雙精度之間。而雙精度變變量占有量占有8個(gè)字節(jié)內(nèi)存單元,有個(gè)字節(jié)內(nèi)存單元,有1516位有效數(shù)字,數(shù)值范圍在位有效數(shù)字,數(shù)值范圍在1.7e
36、-3081.7e+308之間。之間。 第第2 2章章 C C的基本數(shù)據(jù)類型及運(yùn)算的基本數(shù)據(jù)類型及運(yùn)算 YYHYYH版版 3. 字符型變量字符型變量 字符型字符型(char)變量?jī)?nèi)存放字符型常量,用單引號(hào)表示。占內(nèi)變量?jī)?nèi)存放字符型常量,用單引號(hào)表示。占內(nèi)存一個(gè)字節(jié),在內(nèi)存中存放的是該字符的存一個(gè)字節(jié),在內(nèi)存中存放的是該字符的ASCII碼,因此字符碼,因此字符型變量也可存貯數(shù)值范圍為型變量也可存貯數(shù)值范圍為0255(無符號(hào)無符號(hào))或或-128127(有符號(hào)有符號(hào))之之間的整型常數(shù)。間的整型常數(shù)。 例:例:char x=a;在內(nèi)存中存放的是該字符的;在內(nèi)存中存放的是該字符的ASCII碼碼97。另:。
37、另: 在在VC+語言中,用語言中,用CString定義字符串文本定義字符串文本數(shù)據(jù),用雙引號(hào)表示。數(shù)據(jù),用雙引號(hào)表示。 例:例: CString x=“VC+程序設(shè)計(jì)程序設(shè)計(jì)”; 4. 枚舉型變量枚舉型變量 枚舉型是一個(gè)整型常量的集合。這些常量指定了所有該類枚舉型是一個(gè)整型常量的集合。這些常量指定了所有該類型變量可能具有的各種枚舉值。枚舉在我們?nèi)粘I钪惺殖P妥兞靠赡芫哂械母鞣N枚舉值。枚舉在我們?nèi)粘I钪惺殖R?。見?枚舉的定義形式是:枚舉的定義形式是: enum 枚舉類型名枚舉元素表枚舉類型名枚舉元素表; 例子:例子:第第2 2章章 C C的基本數(shù)據(jù)類型及運(yùn)算的基本數(shù)據(jù)類型及運(yùn)算 YYH
38、YYH版版 enum desktop pen,pencil,eraser,book,tape;/定義定義枚舉類型枚舉類型desktop enum desktop mine;/聲明聲明枚舉類型枚舉類型desktop的變量的變量mine(可省可省enum) enum desktop pen, pencil, eraser,book, tape mine; 枚舉類型的定義和變量的定義有三種形式:枚舉類型的定義和變量的定義有三種形式: (1) 枚舉類型和枚舉變量可分別定義的;枚舉類型和枚舉變量可分別定義的; (2) 可將枚舉類型和枚舉變量一起定義;可將枚舉類型和枚舉變量一起定義; (3) 當(dāng)只有一種枚
39、舉類型時(shí),當(dāng)只有一種枚舉類型時(shí), 可省略枚舉類型名:可省略枚舉類型名: enum pen,pencil,eraser,book,tape mine,your; 等價(jià)等價(jià)第第2 2章章 C C的基本數(shù)據(jù)類型及運(yùn)算的基本數(shù)據(jù)類型及運(yùn)算 YYHYYH版版 定義定義枚舉類型枚舉類型enum后后,即可按枚即可按枚/列舉的值或序號(hào)列舉的值或序號(hào)(起始號(hào)為起始號(hào)為0,其余依此為其余依此為1,2, 也可初始化也可初始化)引用之,例如:引用之,例如: if(mine=pen) 或或if(mine=0)但不可寫為但不可寫為if(mine=“pen”) 例例 2.2 打印出枚舉元素英文打印出枚舉元素英文sat的內(nèi)存
40、的內(nèi)存/序號(hào)值。序號(hào)值。 #include void main( ) enum sun, mon, tue, wed, thu, fri, sat workday, restday; restday=sat; printf(“restday is %dn”, restday); 工作日工作日(變量變量)休息日休息日運(yùn)行:運(yùn)行: restday is 6第第2 2章章 C C的基本數(shù)據(jù)類型及運(yùn)算的基本數(shù)據(jù)類型及運(yùn)算 YYHYYH版版 枚舉型數(shù)據(jù)應(yīng)用舉例枚舉型數(shù)據(jù)應(yīng)用舉例 設(shè)某次體育比賽的結(jié)果有四種可能:勝設(shè)某次體育比賽的結(jié)果有四種可能:勝(win)、負(fù)、負(fù)(lose)、平、平局局(tie)、比賽
41、取消、比賽取消(cancel),編寫程序順序輸出這四種情況。,編寫程序順序輸出這四種情況。 分析:由于比賽結(jié)果只有四種可能,所以可以聲明一個(gè)枚分析:由于比賽結(jié)果只有四種可能,所以可以聲明一個(gè)枚舉類型的變量來存放比賽結(jié)果。舉類型的變量來存放比賽結(jié)果。 程序程序:#include /定義定義枚舉類型枚舉類型game_result enum game_result WIN, LOSE, TIE, CANCEL;void main() game_result result; /定義定義枚舉類型枚舉類型game_result變量變量result enum game_result omit = CANCE
42、L; int count;定義定義枚舉類型枚舉類型game_result常量常量omit = CANCEL第第2 2章章 C C的基本數(shù)據(jù)類型及運(yùn)算的基本數(shù)據(jù)類型及運(yùn)算 YYHYYH版版 for (count = WIN ; count = CANCEL ; count+) /循環(huán)循環(huán)4次次 result = (game_result)count; /將將int型轉(zhuǎn)換為枚舉類型型轉(zhuǎn)換為枚舉類型 if (result = omit) /若是若是CANCEL cout 此次比賽取消此次比賽取消n; else /若不是若不是CANCEL cout 此次比賽進(jìn)行此次比賽進(jìn)行; if (result =
43、 WIN) /若是若是WIN cout “我們獲勝我們獲勝!; if (result = LOSE) /若是若是LOSE cout “我們失敗我們失敗.; cout n; 第第2 2章章 C C的基本數(shù)據(jù)類型及運(yùn)算的基本數(shù)據(jù)類型及運(yùn)算 YYHYYH版版 5. 其它類型變量其它類型變量 另外還有指針型變量,結(jié)構(gòu)體型另外還有指針型變量,結(jié)構(gòu)體型/共用體型變量等,后續(xù)介共用體型變量等,后續(xù)介紹。紹。 C語言中沒有邏輯型變量,所有非零數(shù)值被認(rèn)為是邏輯語言中沒有邏輯型變量,所有非零數(shù)值被認(rèn)為是邏輯“真真”, 而數(shù)值零被認(rèn)為是邏輯而數(shù)值零被認(rèn)為是邏輯“假假“ 。C+中用中用bool來表來表示示邏輯型變量邏
44、輯型變量。 2.4.3 變量的初始化變量的初始化 若需要對(duì)一些變量預(yù)設(shè)初值。若需要對(duì)一些變量預(yù)設(shè)初值。 可在定義變量時(shí)同時(shí)使變量可在定義變量時(shí)同時(shí)使變量初始化。它的一般形式是:初始化。它的一般形式是: 類型類型 變量名變量名=常數(shù);常數(shù);以下是幾個(gè)示例:以下是幾個(gè)示例: char ch=a; int first=0; float x=123.45; 未對(duì)變量預(yù)先設(shè)置初值,未對(duì)變量預(yù)先設(shè)置初值,則其值是不確定的則其值是不確定的。第第2 2章章 C C的基本數(shù)據(jù)類型及運(yùn)算的基本數(shù)據(jù)類型及運(yùn)算 YYHYYH版版2.5 運(yùn)算符及表達(dá)式運(yùn)算符及表達(dá)式 各種運(yùn)算符:各種運(yùn)算符:(1) 算術(shù)運(yùn)算符算術(shù)運(yùn)算符
45、( +, -; *, /; %;+, -;)。(2) 關(guān)系運(yùn)算符關(guān)系運(yùn)算符(, =, =, !=)。(3) 邏輯運(yùn)算符邏輯運(yùn)算符(!(NOT), &(AND), | |(OR)。(4) 位運(yùn)算符位運(yùn)算符(, , |, , &)。(5) 賦值運(yùn)算符賦值運(yùn)算符(=,及其雙目運(yùn)算符的擴(kuò)展賦值運(yùn)算符,及其雙目運(yùn)算符的擴(kuò)展賦值運(yùn)算符)。(6) 條件運(yùn)算符條件運(yùn)算符(? :)。(7) 逗號(hào)運(yùn)算符逗號(hào)運(yùn)算符(,)。(8) 指針運(yùn)算符指針運(yùn)算符(*, &)。(9) 求字節(jié)數(shù)運(yùn)算符求字節(jié)數(shù)運(yùn)算符(sizeof)。(10) 強(qiáng)制類型轉(zhuǎn)換運(yùn)算符強(qiáng)制類型轉(zhuǎn)換運(yùn)算符(類型類型)。(11) 分量運(yùn)
46、算符分量運(yùn)算符(, -)。(12) 下標(biāo)運(yùn)算符下標(biāo)運(yùn)算符( )。(13) 圓括號(hào)運(yùn)算符圓括號(hào)運(yùn)算符( )。 第第2 2章章 C C的基本數(shù)據(jù)類型及運(yùn)算的基本數(shù)據(jù)類型及運(yùn)算 YYHYYH版版 2.5.1算術(shù)算術(shù)運(yùn)算符及運(yùn)算符及表達(dá)式表達(dá)式算術(shù)與賦值運(yùn)算符及算術(shù)與賦值運(yùn)算符及表達(dá)式表達(dá)式表表 2.4 算術(shù)運(yùn)算符和賦值運(yùn)算符算術(shù)運(yùn)算符和賦值運(yùn)算符(優(yōu)先級(jí)愈大即愈后運(yùn)算優(yōu)先級(jí)愈大即愈后運(yùn)算) 第第2 2章章 C C的基本數(shù)據(jù)類型及運(yùn)算的基本數(shù)據(jù)類型及運(yùn)算 YYHYYH版版 算術(shù)表達(dá)式的形式如下:算術(shù)表達(dá)式的形式如下: 算術(shù)表達(dá)式中運(yùn)算對(duì)象算術(shù)表達(dá)式中運(yùn)算對(duì)象(操作數(shù)操作數(shù))是數(shù)值,是數(shù)值, 也可也可以
47、是字符以是字符(按其按其ASCII碼值進(jìn)行運(yùn)算碼值進(jìn)行運(yùn)算),運(yùn)算結(jié)果,運(yùn)算結(jié)果(即表即表達(dá)式的值達(dá)式的值)是數(shù)值。是數(shù)值。 如:如: a+b*c-d/e 說明說明: 第第2 2章章 C C的基本數(shù)據(jù)類型及運(yùn)算的基本數(shù)據(jù)類型及運(yùn)算 YYHYYH版版 (1) +, -, *, / 與數(shù)學(xué)中運(yùn)算類似,即按先乘除后加減優(yōu)先與數(shù)學(xué)中運(yùn)算類似,即按先乘除后加減優(yōu)先級(jí)順序運(yùn)算。注意合理添加圓括號(hào)和括號(hào)的配對(duì)。除法級(jí)順序運(yùn)算。注意合理添加圓括號(hào)和括號(hào)的配對(duì)。除法(/)在在用于兩個(gè)整型數(shù)據(jù)時(shí),其運(yùn)算結(jié)果也是整數(shù),余數(shù)總是被截用于兩個(gè)整型數(shù)據(jù)時(shí),其運(yùn)算結(jié)果也是整數(shù),余數(shù)總是被截掉。掉。如如1/2的結(jié)果是的結(jié)果是
48、0;10/3的結(jié)果是的結(jié)果是3。 (2)求余運(yùn)算符求余運(yùn)算符(%)僅用于整型數(shù)據(jù)。它的作用是取整數(shù)除僅用于整型數(shù)據(jù)。它的作用是取整數(shù)除法的余數(shù)。如法的余數(shù)。如1%2的結(jié)果是的結(jié)果是1;10%3的結(jié)果也是的結(jié)果也是1。 實(shí)例實(shí)例:300M的運(yùn)動(dòng)場(chǎng),一運(yùn)動(dòng)員從起點(diǎn)跑步的運(yùn)動(dòng)場(chǎng),一運(yùn)動(dòng)員從起點(diǎn)跑步1000M后離起后離起點(diǎn)多遠(yuǎn)?點(diǎn)多遠(yuǎn)? 解:解:1000%300 :100M 第第2 2章章 C C的基本數(shù)據(jù)類型及運(yùn)算的基本數(shù)據(jù)類型及運(yùn)算 YYHYYH版版 (3) 賦值運(yùn)算符賦值運(yùn)算符(=):將右邊表達(dá)式先算出,再賦給左邊的:將右邊表達(dá)式先算出,再賦給左邊的變量變量(保存保存)。注意:賦值運(yùn)算符左邊必須
49、是變量而不能是常。注意:賦值運(yùn)算符左邊必須是變量而不能是常量或表達(dá)式。比較賦值號(hào)量或表達(dá)式。比較賦值號(hào)(=)和數(shù)學(xué)等號(hào)和數(shù)學(xué)等號(hào)(=): 賦值號(hào)賦值號(hào)(=) 數(shù)學(xué)等號(hào)數(shù)學(xué)等號(hào)(=) x=x+1 x+1=x x=a+1 a+1 =x x=a+1 a+1=x (4) +, -僅用于整型變量,指針變量。用于整型變量在僅用于整型變量,指針變量。用于整型變量在原值上加原值上加1或減或減1;用于指針變量是取下一地址或上一地址。;用于指針變量是取下一地址或上一地址。 關(guān)于指針部分的使用在第八章中介紹。關(guān)于指針部分的使用在第八章中介紹。第第2 2章章 C C的基本數(shù)據(jù)類型及運(yùn)算的基本數(shù)據(jù)類型及運(yùn)算 YYHYY
50、H版版 難點(diǎn):難點(diǎn):1) 單個(gè)整型變量的增減單個(gè)整型變量的增減1運(yùn)算前后綴是等價(jià)的:運(yùn)算前后綴是等價(jià)的: i+/+i i=i+1 i+=1 i-/-i i=i-1 i-=1 2) 若增減若增減1又參與其它運(yùn)算,即增減又參與其它運(yùn)算,即增減1運(yùn)算符用在表達(dá)式中時(shí),運(yùn)算符用在表達(dá)式中時(shí),寫法寫法(前后綴前后綴)是有差別的:如果運(yùn)算符在操作數(shù)前面,是有差別的:如果運(yùn)算符在操作數(shù)前面, 則在表則在表達(dá)式達(dá)式“引用引用”該操作數(shù)前,先對(duì)其作加該操作數(shù)前,先對(duì)其作加1或減或減1運(yùn)算運(yùn)算(即增減即增減1后后再參與運(yùn)算再參與運(yùn)算); 如果運(yùn)算符在操作數(shù)之后,則先如果運(yùn)算符在操作數(shù)之后,則先“引用引用”該操該操
51、作數(shù),然后作數(shù),然后再對(duì)它作加再對(duì)它作加1或減或減1運(yùn)算運(yùn)算(即參與運(yùn)算后再增減即參與運(yùn)算后再增減1) 。 例:設(shè)例:設(shè)a=5,則,則 b=a+ -1 b=(a+)-1 b=+a -1 b=(+a)-1 結(jié)果為:結(jié)果為:b為為4 b為為5 但最后但最后a均為均為6第第2 2章章 C C的基本數(shù)據(jù)類型及運(yùn)算的基本數(shù)據(jù)類型及運(yùn)算 YYHYYH版版#include void main( ) int x, y; x=10; y=+x; printf(“%d, %dn”, x, y); 運(yùn)算結(jié)果為運(yùn)算結(jié)果為 11, 11此時(shí)此時(shí)y的值和的值和x的值都為的值都為11。 然而換一種寫法:然而換一種寫法: #
52、include void main( ) int x, y; x=10; y=x+; printf(“%d, %dn”, x, y); 運(yùn)行結(jié)果為運(yùn)行結(jié)果為 11, 10此時(shí)此時(shí)y的值是的值是10,而而x的值自增后的值自增后為為11。 (5) +, -, *, /, % 可以與賦值號(hào)可以與賦值號(hào)“=”組成復(fù)合賦值運(yùn)算符組成復(fù)合賦值運(yùn)算符+=, -=, *=, /=, %=,如如a=a+b可以寫成可以寫成a+=b,a=a*b可以可以寫成寫成a*=b,其余類推,這樣書寫簡(jiǎn)練,運(yùn)行速度快。,其余類推,這樣書寫簡(jiǎn)練,運(yùn)行速度快。例子例子第第2 2章章 C C的基本數(shù)據(jù)類型及運(yùn)算的基本數(shù)據(jù)類型及運(yùn)算 Y
53、YHYYH版版 2.5.2 關(guān)系關(guān)系/邏輯運(yùn)算符及其表達(dá)式邏輯運(yùn)算符及其表達(dá)式 表 2.5 關(guān)系和邏輯運(yùn)算符(表示條件) 第第2 2章章 C C的基本數(shù)據(jù)類型及運(yùn)算的基本數(shù)據(jù)類型及運(yùn)算 YYHYYH版版 關(guān)系表達(dá)式的形式如下:關(guān)系表達(dá)式的形式如下: 關(guān)系表達(dá)式中運(yùn)算對(duì)象是數(shù)值,也可以是字符關(guān)系表達(dá)式中運(yùn)算對(duì)象是數(shù)值,也可以是字符(取其取其ASCII碼值碼值), 其運(yùn)算結(jié)果是邏輯量,即為其運(yùn)算結(jié)果是邏輯量,即為“真真”時(shí)取時(shí)取1,為為“假假”時(shí)取時(shí)取0。 邏輯表達(dá)式的形式如下:邏輯表達(dá)式的形式如下: 邏輯表達(dá)式的運(yùn)算對(duì)象是邏輯量邏輯表達(dá)式的運(yùn)算對(duì)象是邏輯量(一般是一般是關(guān)系表達(dá)式關(guān)系表達(dá)式)。在
54、在C語言中規(guī)定將非零的值按語言中規(guī)定將非零的值按“真真”對(duì)對(duì)待,零值按待,零值按“假假”對(duì)對(duì)待。而運(yùn)算結(jié)果為待。而運(yùn)算結(jié)果為“真真”時(shí)取時(shí)取1, 為為“假假”時(shí)取時(shí)取0。 第第2 2章章 C C的基本數(shù)據(jù)類型及運(yùn)算的基本數(shù)據(jù)類型及運(yùn)算 YYHYYH版版 說明:說明: (1) 當(dāng)關(guān)系運(yùn)算符兩邊的值滿足關(guān)系時(shí)為真,返回當(dāng)關(guān)系運(yùn)算符兩邊的值滿足關(guān)系時(shí)為真,返回1或或true (對(duì)對(duì)C+);不滿足關(guān)系時(shí)為假,返回;不滿足關(guān)系時(shí)為假,返回0或或false(對(duì)對(duì)C+)。例如:。例如: x=10; printf(“%dn”, x=9); 則輸出為則輸出為1。又如:。又如: x=5; printf(“%dn”
55、, x=9); 則輸出為則輸出為0。 字符比較按其字符比較按其ASCII碼值進(jìn)行,碼值進(jìn)行, 如如A, =, , 31); 運(yùn)行輸出結(jié)果為運(yùn)行輸出結(jié)果為0。因?yàn)閮蓚€(gè)。因?yàn)閮蓚€(gè)是同一優(yōu)先級(jí),是同一優(yōu)先級(jí),53的結(jié)果的結(jié)果為為1, 而而11的關(guān)系不滿足,所以最后結(jié)果為的關(guān)系不滿足,所以最后結(jié)果為0。又如:。又如: printf(%dn, 1= =1135); 運(yùn)行輸出結(jié)果為運(yùn)行輸出結(jié)果為1。因?yàn)?。因?yàn)榈膬?yōu)先級(jí)比的優(yōu)先級(jí)比=高,則高,則1135的結(jié)的結(jié)果為果為1,而,而1= =1的關(guān)系滿足,所的關(guān)系滿足,所以最后結(jié)果為以最后結(jié)果為1。 (3) 邏輯運(yùn)算真值表如下所示,邏輯值用邏輯運(yùn)算真值表如下所示,
56、邏輯值用1(true)和和0(false)表表示。示。 p q p&q p|q !p 0 0 0 0 1 0 1 0 1 1 1 0 0 1 0 1 1 1 1 0 見假即假見假即假見真即真見真即真第第2 2章章 C C的基本數(shù)據(jù)類型及運(yùn)算的基本數(shù)據(jù)類型及運(yùn)算 YYHYYH版版 (5) 用圓括號(hào)來改變運(yùn)算的自然優(yōu)先次序,如用圓括號(hào)來改變運(yùn)算的自然優(yōu)先次序,如“!1&0”其其值為假值為假(0),因先執(zhí)行,因先執(zhí)行“!1”,然后才執(zhí)行,然后才執(zhí)行&。如果加上圓括。如果加上圓括號(hào)號(hào)“!(1&0)”后就改變了運(yùn)算順序,即執(zhí)行后就改變了運(yùn)算順序,即執(zhí)行“!0”操作結(jié)果為操
57、作結(jié)果為真真(1) 。 (6) 邏輯運(yùn)算的轉(zhuǎn)換。邏輯運(yùn)算的轉(zhuǎn)換。 !(a|b)可寫成可寫成!a&!b,而,而! (a&b)可寫成可寫成!a|! b。 (7) 注意賦值號(hào)注意賦值號(hào)“=”和關(guān)系比較符和關(guān)系比較符“=”的區(qū)別。如:的區(qū)別。如:“if(x=3) printf(“%d”,x);”和和“if(x=3) printf(“%d”,x);”有別。有別。關(guān)系表達(dá)式關(guān)系表達(dá)式 賦值表達(dá)式賦值表達(dá)式 第第2 2章章 C C的基本數(shù)據(jù)類型及運(yùn)算的基本數(shù)據(jù)類型及運(yùn)算 YYHYYH版版 (6) 左移運(yùn)算符左移運(yùn)算符使變量中的每一位向左移動(dòng),移出的最高使變量中的每一位向左移動(dòng),移出的最高位將
58、丟失位將丟失(溢出溢出),而右端補(bǔ)入,而右端補(bǔ)入0。左移表達(dá)式的形式為。左移表達(dá)式的形式為: 變量名變量名移位的位數(shù)移位的位數(shù) 例如:例如:a=15,即,即00001111,取,取a=a使變量中的每一位向右移動(dòng),移出的最低使變量中的每一位向右移動(dòng),移出的最低位將丟失,而高端補(bǔ)位將丟失,而高端補(bǔ)0(正數(shù)正數(shù))。對(duì)于負(fù)數(shù),即原最高位為。對(duì)于負(fù)數(shù),即原最高位為1時(shí),時(shí),右移一位,高端補(bǔ)右移一位,高端補(bǔ)0稱邏輯右移,高端補(bǔ)稱邏輯右移,高端補(bǔ)1稱算術(shù)右移,這由計(jì)稱算術(shù)右移,這由計(jì)算機(jī)系統(tǒng)決定。算機(jī)系統(tǒng)決定。 右移表達(dá)式的形式為:右移表達(dá)式的形式為:第第2 2章章 C C的基本數(shù)據(jù)類型及運(yùn)算的基本數(shù)據(jù)類型
59、及運(yùn)算 YYHYYH版版 變量名變量名移位的位數(shù)移位的位數(shù) 例如:例如:a=16,即即00001000,取取a=a2后后,即即a右移右移2位位,變?yōu)樽優(yōu)?0000010, 即十進(jìn)制數(shù)即十進(jìn)制數(shù)4。右移一位相當(dāng)于除右移一位相當(dāng)于除2,右移兩位,右移兩位相當(dāng)于除相當(dāng)于除4。 (8) 位運(yùn)算符中位運(yùn)算符中&, |, , 可以與賦值號(hào)可以與賦值號(hào)=組成復(fù)合賦組成復(fù)合賦值運(yùn)算符值運(yùn)算符&=, |=, =, =。 如如a=a&b可寫成可寫成a&=b, 其余類推。其余類推。 凡算術(shù)運(yùn)算符,凡算術(shù)運(yùn)算符, 位位運(yùn)算符中的二目運(yùn)算符均可與賦運(yùn)算符中的二目運(yùn)算符均可與賦值號(hào)值號(hào)“=
60、”組成復(fù)合運(yùn)算符。組成復(fù)合運(yùn)算符。 第第2 2章章 C C的基本數(shù)據(jù)類型及運(yùn)算的基本數(shù)據(jù)類型及運(yùn)算 YYHYYH版版 2.5.3 條件運(yùn)算符、逗號(hào)運(yùn)算符及表達(dá)式條件運(yùn)算符、逗號(hào)運(yùn)算符及表達(dá)式 1. 條件運(yùn)算符條件運(yùn)算符?及表達(dá)式及表達(dá)式 條件表達(dá)式:條件表達(dá)式: 表達(dá)式表達(dá)式1 ? 表達(dá)式表達(dá)式2:表達(dá)式表達(dá)式3 功能:功能: 先求表達(dá)式先求表達(dá)式1的值,如果為真的值,如果為真(非零非零), 則求表達(dá)式則求表達(dá)式2的的值,并把它作為整個(gè)表達(dá)式的值;如表達(dá)式值,并把它作為整個(gè)表達(dá)式的值;如表達(dá)式1的值為假的值為假(零零), 則則求表達(dá)式求表達(dá)式3的值,并把它作為整個(gè)表達(dá)式的值。的值,并把它作為整個(gè)表達(dá)式的值。 例如:例如:x=10; y=x9 ? 100:200;(結(jié)果是結(jié)果是y=100) 注意:表達(dá)式注意:表達(dá)式2或表達(dá)式或表達(dá)式3可是另一條
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 班主任關(guān)于學(xué)習(xí)習(xí)慣的指導(dǎo)計(jì)劃
- 生物學(xué)觀察與記錄技巧計(jì)劃
- 藥學(xué)部臨床溝通能力提升計(jì)劃
- 2025年地面瞄準(zhǔn)設(shè)備、定位定向設(shè)備項(xiàng)目合作計(jì)劃書
- 中國開源軟件行業(yè)發(fā)展環(huán)境、市場(chǎng)運(yùn)行格局及投資前景研究報(bào)告(2025版)
- 2025年微循環(huán)測(cè)試系統(tǒng)項(xiàng)目合作計(jì)劃書
- 2025年動(dòng)葉可調(diào)軸流電站用風(fēng)機(jī)合作協(xié)議書
- 2025年磁共振成像裝置合作協(xié)議書
- 2025年油氣鉆采服務(wù)合作協(xié)議書
- 珠寶行業(yè)商品質(zhì)量免責(zé)合同
- 農(nóng)產(chǎn)品質(zhì)量安全及其檢測(cè)技術(shù)課件
- 外科學(xué)緒論課件
- 2020年中國人身保險(xiǎn)產(chǎn)品研究報(bào)告
- 安全生產(chǎn)目標(biāo)責(zé)任制考核表
- 常見織帶花鏈的排法和穿棕方法
- 《化工工程制圖》完整教案
- 2023年廣東省中考試卷(語數(shù)英物化史生等共11套)帶答案解析
- DFX工藝設(shè)計(jì)方法介紹
- 洪恩識(shí)字識(shí)字卡(001-100)可直接打印剪裁
- 違反八項(xiàng)規(guī)定問題典型案例、法規(guī)依據(jù)和關(guān)注點(diǎn)
- J-STD-033D處理包裝運(yùn)輸和使用濕度回流和過程敏感設(shè)備
評(píng)論
0/150
提交評(píng)論