版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、第第2 2章章 C C的基本數(shù)據(jù)類型及運算的基本數(shù)據(jù)類型及運算 YYHYYH版版第第2 2章章 C/C+C/C+的基本數(shù)據(jù)類型及運算的基本數(shù)據(jù)類型及運算 2.1 標識符標識符 2.2 數(shù)據(jù)類型數(shù)據(jù)類型 2.3 常量常量 2.4 變量變量 2.5 運算符運算符 2.6 表達式表達式 2.7 數(shù)據(jù)類型數(shù)據(jù)類型,運算符與表達式舉例運算符與表達式舉例 教材上教材上的第二的第二章章2.3第第2 2章章 C C的基本數(shù)據(jù)類型及運算的基本數(shù)據(jù)類型及運算 YYHYYH版版 2.1 標識符標識符:用來標識變量名、函數(shù)名、數(shù)組名、對象名用來標識變量名、函數(shù)名、數(shù)組名、對象名(含控件名含控件名)、結(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ī)定不同, 標標識符中大小寫字母有區(qū)別。程序中各種標識符、各種語句基本識符中大小寫字母有區(qū)別。程序中各
3、種標識符、各種語句基本上采用小寫字母表示,如變量名、數(shù)組名、函數(shù)名等。而大寫上采用小寫字母表示,如變量名、數(shù)組名、函數(shù)名等。而大寫字母只用來定義宏名等,用的不多。字母只用來定義宏名等,用的不多。 第第2 2章章 C C的基本數(shù)據(jù)類型及運算的基本數(shù)據(jù)類型及運算 YYHYYH版版 (3) 見名知意見名知意:在:在程序中程序中對對用到用到的的標識符標識符應(yīng)做到見名知意,應(yīng)做到見名知意,以提高程以提高程序的可讀性。如用序的可讀性。如用sum表示和,表示和,score表示成績,表示成績,max表示最大值等。表示最大值等。 (4) 關(guān)鍵字關(guān)鍵字:C/C+規(guī)定了許多個關(guān)鍵字規(guī)定了許多個關(guān)鍵字(保留字保留字)
4、,不能,不能再用作各種標識符。下面列出再用作各種標識符。下面列出32個關(guān)鍵字:個關(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ù)類型及運算的基本數(shù)據(jù)類型及運算 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ù)類型及運算的基本數(shù)據(jù)類型及運算 YYHYYH版版#include vo
6、id main(void) const int PRICE=30; /定義單價定義單價 int num,total; float v ,r,h; num=10; total=num*PRICE; /計算價格計算價格 couttotal endl; r=2.5; h=3.2; v=3.14159*r*r*h; /計算圓柱體體積計算圓柱體體積 coutv endl; 常量常量變量變量變量先定變量先定義后使用義后使用第第2 2章章 C C的基本數(shù)據(jù)類型及運算的基本數(shù)據(jù)類型及運算 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ù)類型及運算的基本數(shù)據(jù)類型及運算 YYHYYH版版 說明:說明: (1)字符型字符型(char)變量:表示單個變量:表示單個ASCII碼字符且用單引號碼字符且用單引號表示,即存貯表示,即存貯8位二進制數(shù)位二進制數(shù)(一般是一般是ASCII碼值碼值)。 (2)整型整型(int)變量:用于存貯整數(shù)。因其字長有限,故可表示變量:用于存貯整數(shù)。因其字長有限,故可表示的整數(shù)的范圍也有限的整數(shù)的范圍也有限(16B)。 (3)單精度實型單精度實型(float,32B)和雙精度實型和雙精度實型(double,64B)變量:變量:用于存貯實數(shù),實數(shù)具有整數(shù)和小數(shù)兩部分或是帶指數(shù)
8、的數(shù)用于存貯實數(shù),實數(shù)具有整數(shù)和小數(shù)兩部分或是帶指數(shù)的數(shù)據(jù)。據(jù)。 (4)無值型無值型(void)有兩種用途:第一是明確地表示一個函數(shù)不有兩種用途:第一是明確地表示一個函數(shù)不返回任何值;第二返回任何值;第二是產(chǎn)生同一類型的指針。是產(chǎn)生同一類型的指針。 第第2 2章章 C C的基本數(shù)據(jù)類型及運算的基本數(shù)據(jù)類型及運算 YYHYYH版版 2. 數(shù)據(jù)數(shù)據(jù)類型修飾符類型修飾符 除了除了void類型外,基本數(shù)據(jù)類型可以帶有各種修飾前綴。類型外,基本數(shù)據(jù)類型可以帶有各種修飾前綴。修飾符用于明確基本數(shù)據(jù)類型的含義,以準確地適應(yīng)不同情修飾符用于明確基本數(shù)據(jù)類型的含義,以準確地適應(yīng)不同情況下的要求。類型修飾符種類如
9、下:況下的要求。類型修飾符種類如下: signed 有符號有符號 unsigned 無符號無符號 long 長長 short 短短 如:如:short int 表示表示16位短型整數(shù)位短型整數(shù)(和和int同同);long int表示表示32位位長型整數(shù)。其他見下表。長型整數(shù)。其他見下表。第第2 2章章 C C的基本數(shù)據(jù)類型及運算的基本數(shù)據(jù)類型及運算 YYHYYH版版表表 2.2 C+基本類型及其修飾符的所有組合基本類型及其修飾符的所有組合 比較比較第第2 2章章 C C的基本數(shù)據(jù)類型及運算的基本數(shù)據(jù)類型及運算 YYHYYH版版 說明說明 (1)不同的計算機系統(tǒng)對各類數(shù)據(jù)所占內(nèi)存字節(jié)數(shù)有不同的規(guī)
10、定,如int型有的系統(tǒng)占16位,有的占32位。long double型有的占128位,有的占64位。(2)有符號(signed)和無符號(unsigned)的整型量的區(qū)別在于它們的最高位的定義不同。對有符號的整型(signed int),其最高位為符號位,其余位表示數(shù)值大小。最高位為0,則該整數(shù)為正;最高位為1,則該整數(shù)為負。例如用8位二進制表示時: 第第2 2章章 C C的基本數(shù)據(jù)類型及運算的基本數(shù)據(jù)類型及運算 YYHYYH版版 補充:補充:大部分計算機表示有符號數(shù)時都使用二進制補碼補碼。原因及細節(jié)在微機原理課上學(xué)習(xí)(即其加減均可變成其補碼的加法)。補碼補碼的求法很簡單:正數(shù)補碼即原碼正數(shù)補
11、碼即原碼(即二進制碼即二進制碼);負數(shù);負數(shù)的補碼是將其對應(yīng)原碼的各位的補碼是將其對應(yīng)原碼的各位(除符號除符號位外位外)按位求反,然后加按位求反,然后加1。上述四個數(shù)用 8 位二進制表示有符號數(shù)時機內(nèi)補碼值為: 第第2 2章章 C C的基本數(shù)據(jù)類型及運算的基本數(shù)據(jù)類型及運算 YYHYYH版版 有符號整數(shù)所能表示的最大數(shù)的絕對值只是無符號數(shù)的一半 。 例 , 3 2 7 6 7 的 有 符 號 整 數(shù) ( 2 B ) 表 示 為 : 0111111111111111(2-115 )如果最高位設(shè)置為1,則該數(shù)就會被當作-1(按補碼算)。然而,如將該數(shù)定義為無符號整型(unsigned int),那
12、么當最高位設(shè)置為1時,它就變成了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)。相當于表格。結(jié)構(gòu)。相當于表格。 第第2 2章章 C C的基本數(shù)據(jù)類型及運算的基本數(shù)據(jù)類型及運算 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)體。 枚舉枚舉是只有幾種可能的值,將其一一列舉出來。實際是用是只有幾種可能的值,將其一一列舉出來。實際是用符號來表示若干個可取的整型值,符號來表示若干個可取的整型值, 它是整型的一個子集。后它是整型的一個子集。后面分別介紹。面分別介紹。 2.2.3 指針類型指針類型 指針指針是是C+語言中一個重要概念??梢杂行У乇硎緩?fù)雜的語言中一個重要概念??梢杂行У乇硎緩?fù)雜的數(shù)據(jù)結(jié)構(gòu);能動態(tài)分配內(nèi)存;能方便有效地使用字符串、數(shù)組;數(shù)據(jù)結(jié)構(gòu);能動態(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ù)類型及運算的基本數(shù)據(jù)類型及運算 YYHYYH版版 2.3 常常 量量 2.3.1 數(shù)值常量數(shù)值常量 1. 整數(shù)整數(shù)(型常量型常量) 整型常量也稱為整型常數(shù)或整數(shù)。整型常量也稱為整型常數(shù)或整數(shù)。C+整型常量按進制整型常量按進制分可分為十進制整數(shù),八進制整數(shù)和十六進制整數(shù)。分可分為十進制整數(shù),八進制整數(shù)和十六進制整數(shù)。 1) 十進制整數(shù)十進制整數(shù) 十進制整數(shù)以十進制整數(shù)以正負號開頭正負號開頭,后跟,后跟09的若干位數(shù)字構(gòu)成。的若干位數(shù)字構(gòu)成。如如123, -456, 0等
15、。等。 第第2 2章章 C C的基本數(shù)據(jù)類型及運算的基本數(shù)據(jù)類型及運算 YYHYYH版版 2) 八進制整數(shù)八進制整數(shù) 八進制整數(shù)是以八進制整數(shù)是以正負號開頭正負號開頭,第一位數(shù)字一定是,第一位數(shù)字一定是0,后面,后面跟跟07的數(shù)字。如八進制數(shù)的數(shù)字。如八進制數(shù)0123,相當于十進制數(shù),相當于十進制數(shù)83;八進制;八進制數(shù)數(shù)-012,相當于十進制數(shù),相當于十進制數(shù)-10。 八進制數(shù)與十進制數(shù)的轉(zhuǎn)換,方法如下:八進制數(shù)與十進制數(shù)的轉(zhuǎn)換,方法如下: 0123=1(8 2)+2(8 1)+3(8 0)=64+16+3=83 3) 十六進制整數(shù)十六進制整數(shù) 十六進制整數(shù)是以十六進制整數(shù)是以正負號開頭正負
16、號開頭,前兩位為,前兩位為0 x,后面跟,后面跟09和和af的數(shù)字。其中的數(shù)字。其中a代表代表10, b代表代表11, 其余類推。其余類推。第第2 2章章 C C的基本數(shù)據(jù)類型及運算的基本數(shù)據(jù)類型及運算 YYHYYH版版 如十六進制數(shù)如十六進制數(shù)0 x123,相當于十進制數(shù),相當于十進制數(shù)291;十六進制數(shù);十六進制數(shù) -0 x12,相當于十進制數(shù),相當于十進制數(shù)-18。 十六進制數(shù)轉(zhuǎn)換成十進制數(shù),方法如下:十六進制數(shù)轉(zhuǎ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) (補充補充)二進制數(shù),二進制數(shù), 字節(jié),字節(jié), 字,字, 位:計算機內(nèi)所有的信位:計算機內(nèi)所有的信息均用二進制表示,即計算機內(nèi)只有息均用二進制表示,即計算機內(nèi)只有0和和1,也只認識由,也只認識由0和和1組成的程序或數(shù)據(jù)。為什么在計算機中要使用二進制數(shù)呢組成的程序或數(shù)據(jù)。為什么在計算機中要使用二進制數(shù)呢? 因因為二進制數(shù)運算規(guī)則簡單,用物理器材容易實現(xiàn),如電壓的為二進制數(shù)運算規(guī)則簡單,用物理器材容易實現(xiàn),如電壓的高與低,高與低, 開關(guān)的開與關(guān),脈沖的有與無等等。開關(guān)的開與關(guān),脈沖
18、的有與無等等。 第第2 2章章 C C的基本數(shù)據(jù)類型及運算的基本數(shù)據(jù)類型及運算 YYHYYH版版 一個二進制數(shù)一個二進制數(shù)0或或1, 稱為稱為“位位”(bit)。 在計算機存貯器中,為了便于管理,常將在計算機存貯器中,為了便于管理,常將 8 個位稱為一個位稱為一個個“字節(jié)字節(jié)”(byte),每個字節(jié)存放在一個,每個字節(jié)存放在一個存貯單元存貯單元中,每個中,每個單元單元賦于一個賦于一個存貯地址存貯地址。 計算機在處理數(shù)據(jù)時,每一個數(shù)據(jù)是一個計算機在處理數(shù)據(jù)時,每一個數(shù)據(jù)是一個“字字”(word),字是由若干字節(jié)組成。字可以是字是由若干字節(jié)組成。字可以是2個字節(jié)個字節(jié)(整數(shù)整數(shù)),4個字節(jié)個字節(jié)(
19、稱稱為為4*8=32位字長位字長),8個字節(jié)個字節(jié)(稱為稱為8*8=64位字長位字長) 等等等。等。 2. 實數(shù)實數(shù): 單精度單精度(float)和和雙精度雙精度(double)均有均有定點數(shù)和浮點數(shù)定點數(shù)和浮點數(shù) 第第2 2章章 C C的基本數(shù)據(jù)類型及運算的基本數(shù)據(jù)類型及運算 YYHYYH版版 1) 定點數(shù)定點數(shù)(小數(shù)形式小數(shù)形式):單精度:單精度 (float)實型常量實型常量 表示:表示:一個實數(shù)可是正負號開頭,有若干位一個實數(shù)可是正負號開頭,有若干位09的整的整數(shù)數(shù),后跟一個小數(shù)點后跟一個小數(shù)點(必須有必須有),再有若干位小數(shù)部分。如,再有若干位小數(shù)部分。如123.456, -21.3
20、7。 數(shù)數(shù)12用實數(shù)表示必須寫成用實數(shù)表示必須寫成12.0或或12.。 范圍:范圍:設(shè)計時規(guī)定了實數(shù)有數(shù)值范圍和有效位數(shù)的。設(shè)計時規(guī)定了實數(shù)有數(shù)值范圍和有效位數(shù)的。一般實數(shù)僅有七位有效數(shù)字,故實數(shù)的數(shù)值范圍是一般實數(shù)僅有七位有效數(shù)字,故實數(shù)的數(shù)值范圍是3.410-38|x|3.41038,當小于,當小于3.410-38時按時按0對待對待(下下溢溢), 而大于而大于3.41038時則上溢,一個溢出的數(shù)是無意義時則上溢,一個溢出的數(shù)是無意義的。的。第第2 2章章 C C的基本數(shù)據(jù)類型及運算的基本數(shù)據(jù)類型及運算 YYHYYH版版 2) 浮點數(shù)浮點數(shù)(指數(shù)形式指數(shù)形式) 實數(shù)的指數(shù)形式也稱為科學(xué)表示法
21、,一個實數(shù)的指數(shù)形實數(shù)的指數(shù)形式也稱為科學(xué)表示法,一個實數(shù)的指數(shù)形式分成式分成尾數(shù)部分尾數(shù)部分和和指數(shù)部分指數(shù)部分。尾數(shù)部分可以是整數(shù)形式或小。尾數(shù)部分可以是整數(shù)形式或小數(shù)形式,指數(shù)部分是一個字母數(shù)形式,指數(shù)部分是一個字母“e”后跟一個整數(shù)。如后跟一個整數(shù)。如123e+01,-456.78e-01, 0e0等。由于實數(shù)僅有等。由于實數(shù)僅有7位有效數(shù)字,位有效數(shù)字,因此在內(nèi)存中用三個字節(jié)來表示尾數(shù),因此在內(nèi)存中用三個字節(jié)來表示尾數(shù), 用一個字節(jié)來表示用一個字節(jié)來表示指數(shù),所以指數(shù)部分用兩位整數(shù)來表示。指數(shù),所以指數(shù)部分用兩位整數(shù)來表示。 在書寫時在書寫時“e”與與“E”完全等價。完全等價?!癳”
22、前面必須有數(shù)字,前面必須有數(shù)字,“e”后面必須是整數(shù)。后面必須是整數(shù)。 尾數(shù)尾數(shù) 指數(shù)指數(shù)第第2 2章章 C C的基本數(shù)據(jù)類型及運算的基本數(shù)據(jù)類型及運算 YYHYYH版版 3) 雙精度常量雙精度常量(double) 用雙精度常量來表示實數(shù)的有效位可達用雙精度常量來表示實數(shù)的有效位可達16位左右,故一個位左右,故一個雙精度常量在內(nèi)存中占雙精度常量在內(nèi)存中占8個字節(jié)。個字節(jié)。 長雙精度常量有長雙精度常量有19位有效數(shù)位有效數(shù)字,在內(nèi)存中字,在內(nèi)存中占占16個字節(jié)。個字節(jié)。 2.3.2 字符常量字符常量:用單引號:用單引號括起來的單個字符。如括起來的單個字符。如A,a ,且一般用其對應(yīng)的,且一般用其
23、對應(yīng)的ASCII碼值表示碼值表示(前例分別是前例分別是65和和97,注意:大小寫字母的,注意:大小寫字母的ASCII碼相差碼相差32) 。 2.3.3 字符串常量字符串常量:用雙引號:用雙引號“”“”括起來的字符串或文本。括起來的字符串或文本。如如“text”, “Text” , “程序設(shè)計程序設(shè)計”,其值為去掉,其值為去掉“”“”后的字符后的字符串或文本本身。串或文本本身。 2.3.4 轉(zhuǎn)義字符轉(zhuǎn)義字符:以斜杠:以斜杠“”開頭后跟一特定字符表示控開頭后跟一特定字符表示控制功能,見下表制功能,見下表 2.3 控制字符表示法??刂谱址硎痉?。 第第2 2章章 C C的基本數(shù)據(jù)類型及運算的基本數(shù)據(jù)
24、類型及運算 YYHYYH版版表表 2.3 控制字符表示法控制字符表示法 第第2 2章章 C C的基本數(shù)據(jù)類型及運算的基本數(shù)據(jù)類型及運算 YYHYYH版版2.3.4 字符串常量字符串常量 16進制的進制的ASCII碼碼第第2 2章章 C C的基本數(shù)據(jù)類型及運算的基本數(shù)據(jù)類型及運算 YYHYYH版版 字符常量字符常量 字符串常量字符串常量占占1B;存放;存放ASCII碼碼(如如a為為 或或16進進制的制的0 x61);單引號;其值為對應(yīng)的;單引號;其值為對應(yīng)的ASCII碼碼值;可參與運算:值;可參與運算:b=a+3(即即b=97+3=100)97占占n個字符個字符+1個個B;存放有序字符串;存放有
25、序字符串(如如“aty”)其尾必有其尾必有“0”結(jié)尾標記;雙引號;其值為有結(jié)尾標記;雙引號;其值為有序字符串本身;不可參與運算序字符串本身;不可參與運算;如:如:“a”:a0附:附:不同數(shù)據(jù)類型的轉(zhuǎn)換形式不同數(shù)據(jù)類型的轉(zhuǎn)換形式: (類型類型)表達式表達式 或或 類型類型(表達式表達式) 例例(char)3*3.14*x字符常量與字符串常量比較字符常量與字符串常量比較第第2 2章章 C C的基本數(shù)據(jù)類型及運算的基本數(shù)據(jù)類型及運算 YYHYYH版版 2.3.5 符號常量符號常量 1. 不帶參數(shù)不帶參數(shù)簡單簡單的的宏定義宏定義 宏定義宏定義命令命令#define用來為一個標識符定義一個字符串,每用來
26、為一個標識符定義一個字符串,每次遇到該標識符時就用所定義的字符串替換它。這個標識符叫次遇到該標識符時就用所定義的字符串替換它。這個標識符叫做宏名做宏名(常用大寫字母作為宏名常用大寫字母作為宏名),替換過程叫做宏替換或宏展開。,替換過程叫做宏替換或宏展開。宏定義命令宏定義命令#define的一般形式是:的一般形式是: define 宏名宏名 字符串字符串 宏名宏名=字符串字符串 例如用例如用PI表示數(shù)值表示數(shù)值3.14159,可以用宏定義,可以用宏定義define來說明:來說明: define PI 3.14159 在編譯時,每遇到在編譯時,每遇到PI就自動用就自動用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ù)類型及運算的基本數(shù)據(jù)類型及運算 YYHYYH版版 注意注意宏替換僅是簡單替換,本身無運算和語法檢查功能。適宏替換僅是簡單替換,本身無運算和語法檢查功能。適宜復(fù)雜公式計算。又如:宜復(fù)雜公式計算。又如: #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)語法錯誤語法錯誤(因有因有“;”而無法運算而無法運算,可去掉之即可可去掉之即可)。 #undef 宏名來終止其作用宏名來終止其作用(域域)。 例如:例如: #define PI 3.14159 void main( ) #undef PI第第2 2章章 C C的基本數(shù)據(jù)類型及運算的基本數(shù)據(jù)類型及運算 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); 而在雙引號內(nèi)的而在雙引號內(nèi)的L, S將不被替換將不被替換,即字符串內(nèi)與宏名相同的即字符串內(nèi)與宏名相同的部分將不替換部分將不替換(因是格式說明因是格式說明)。 *2. 帶參數(shù)的帶參數(shù)的宏定義宏定義 它不是進行簡單的字符串替換,它不是進行簡單的字符串替換, 還要進行參數(shù)替換。還要進行參數(shù)替換。 其定其定義的一般形式為:義的一般形式為: de
30、fine 宏名宏名(參數(shù)表參數(shù)表) 字符串字符串運行情況如下: L=18.849556S=28.274333第第2 2章章 C C的基本數(shù)據(jù)類型及運算的基本數(shù)據(jù)類型及運算 YYHYYH版版 其中字符串中包括參數(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ù)表左括號之間不能有
31、空格,宏名和參數(shù)表左括號之間不能有空格, 否則按不帶否則按不帶參宏替換了。參宏替換了。(2) 字符串中應(yīng)注意括號的使用,以保證運算次序。字符串中應(yīng)注意括號的使用,以保證運算次序。 如上例改成如上例改成 area=S(1+2, 2);經(jīng)展開后變成經(jīng)展開后變成area=1+2*2;這;這就不合我們的要求了。就不合我們的要求了。 此時,此時, 可改寫成可改寫成 define S(a, b) (a)*(b) area=S(1+2, 2) 經(jīng)展開后變成經(jīng)展開后變成 area=(1+2)*(2); 就不會出現(xiàn)錯誤了。就不會出現(xiàn)錯誤了。 第第2 2章章 C C的基本數(shù)據(jù)類型及運算的基本數(shù)據(jù)類型及運算 YYH
32、YYH版版 2.4 變變 量量 2.4.1 變量的定義變量的定義 1. 定義:定義: 類型類型 變量名表;變量名表; 這里,類型這里,類型(type)必須是必須是C/C+語言的有效數(shù)據(jù)類型。變量語言的有效數(shù)據(jù)類型。變量名表可以是一個或多個用逗號分隔標識符名,最后以分號結(jié)名表可以是一個或多個用逗號分隔標識符名,最后以分號結(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、型及運算的基本數(shù)據(jù)類型及運算 YYHYYH版版(1) 變量名變量名必須遵循的必須遵循的“先定義,后使用先定義,后使用”的原則,的原則,且是且是合法標識符,定義時應(yīng)合法標識符,定義時應(yīng) “見名知意見名知意” 。 (2) 變量可以在程序內(nèi)的三個地方定義:變量可以在程序內(nèi)的三個地方定義: 在在函數(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ù)類型及運算的基本數(shù)據(jù)類型及運算 YYHYYH版版2.4.2 各種類型的變量各種類型的變量 1. 整型變量整型變量 整型變量用來存放整型數(shù)值。整型變量可分為:基本型整型變量用來存放整型數(shù)值。整型變量可分為:基本型(int), 短整型短整型(short int或或short),長整
35、型,長整型(long int或或long)和無和無符號型符號型(unsigned int, unsigned short, unsigned long)。 2. 實型變量實型變量 實型變量分為單精度型實型變量分為單精度型(float)和雙精度型和雙精度型(double)兩類。兩類。其存放數(shù)據(jù)的差別是:單精度變量占其存放數(shù)據(jù)的差別是:單精度變量占4個字節(jié)內(nèi)存單元,有個字節(jié)內(nèi)存單元,有7位有效數(shù)字,數(shù)值范圍在位有效數(shù)字,數(shù)值范圍在3.4e-383.4e+38之間。而雙精度之間。而雙精度變變量占有量占有8個字節(jié)內(nèi)存單元,有個字節(jié)內(nèi)存單元,有1516位有效數(shù)字,數(shù)值范圍在位有效數(shù)字,數(shù)值范圍在1.7e
36、-3081.7e+308之間。之間。 第第2 2章章 C C的基本數(shù)據(jù)類型及運算的基本數(shù)據(jù)類型及運算 YYHYYH版版 3. 字符型變量字符型變量 字符型字符型(char)變量內(nèi)存放字符型常量,用單引號表示。占內(nèi)變量內(nèi)存放字符型常量,用單引號表示。占內(nèi)存一個字節(jié),在內(nèi)存中存放的是該字符的存一個字節(jié),在內(nèi)存中存放的是該字符的ASCII碼,因此字符碼,因此字符型變量也可存貯數(shù)值范圍為型變量也可存貯數(shù)值范圍為0255(無符號無符號)或或-128127(有符號有符號)之之間的整型常數(shù)。間的整型常數(shù)。 例:例:char x=a;在內(nèi)存中存放的是該字符的;在內(nèi)存中存放的是該字符的ASCII碼碼97。另:。
37、另: 在在VC+語言中,用語言中,用CString定義字符串文本定義字符串文本數(shù)據(jù),用雙引號表示。數(shù)據(jù),用雙引號表示。 例:例: CString x=“VC+程序設(shè)計程序設(shè)計”; 4. 枚舉型變量枚舉型變量 枚舉型是一個整型常量的集合。這些常量指定了所有該類枚舉型是一個整型常量的集合。這些常量指定了所有該類型變量可能具有的各種枚舉值。枚舉在我們?nèi)粘I钪惺殖P妥兞靠赡芫哂械母鞣N枚舉值。枚舉在我們?nèi)粘I钪惺殖R?。見?枚舉的定義形式是:枚舉的定義形式是: enum 枚舉類型名枚舉元素表枚舉類型名枚舉元素表; 例子:例子:第第2 2章章 C C的基本數(shù)據(jù)類型及運算的基本數(shù)據(jù)類型及運算 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) 當只有一種枚
39、舉類型時,當只有一種枚舉類型時, 可省略枚舉類型名:可省略枚舉類型名: enum pen,pencil,eraser,book,tape mine,your; 等價等價第第2 2章章 C C的基本數(shù)據(jù)類型及運算的基本數(shù)據(jù)類型及運算 YYHYYH版版 定義定義枚舉類型枚舉類型enum后后,即可按枚即可按枚/列舉的值或序號列舉的值或序號(起始號為起始號為0,其余依此為其余依此為1,2, 也可初始化也可初始化)引用之,例如:引用之,例如: if(mine=pen) 或或if(mine=0)但不可寫為但不可寫為if(mine=“pen”) 例例 2.2 打印出枚舉元素英文打印出枚舉元素英文sat的內(nèi)存
40、的內(nèi)存/序號值。序號值。 #include void main( ) enum sun, mon, tue, wed, thu, fri, sat workday, restday; restday=sat; printf(“restday is %dn”, restday); 工作日工作日(變量變量)休息日休息日運行:運行: restday is 6第第2 2章章 C C的基本數(shù)據(jù)類型及運算的基本數(shù)據(jù)類型及運算 YYHYYH版版 枚舉型數(shù)據(jù)應(yīng)用舉例枚舉型數(shù)據(jù)應(yīng)用舉例 設(shè)某次體育比賽的結(jié)果有四種可能:勝設(shè)某次體育比賽的結(jié)果有四種可能:勝(win)、負、負(lose)、平、平局局(tie)、比賽
41、取消、比賽取消(cancel),編寫程序順序輸出這四種情況。,編寫程序順序輸出這四種情況。 分析:由于比賽結(jié)果只有四種可能,所以可以聲明一個枚分析:由于比賽結(jié)果只有四種可能,所以可以聲明一個枚舉類型的變量來存放比賽結(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ù)類型及運算的基本數(shù)據(jù)類型及運算 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 此次比賽進行此次比賽進行; if (result =
43、 WIN) /若是若是WIN cout “我們獲勝我們獲勝!; if (result = LOSE) /若是若是LOSE cout “我們失敗我們失敗.; cout n; 第第2 2章章 C C的基本數(shù)據(jù)類型及運算的基本數(shù)據(jù)類型及運算 YYHYYH版版 5. 其它類型變量其它類型變量 另外還有指針型變量,結(jié)構(gòu)體型另外還有指針型變量,結(jié)構(gòu)體型/共用體型變量等,后續(xù)介共用體型變量等,后續(xù)介紹。紹。 C語言中沒有邏輯型變量,所有非零數(shù)值被認為是邏輯語言中沒有邏輯型變量,所有非零數(shù)值被認為是邏輯“真真”, 而數(shù)值零被認為是邏輯而數(shù)值零被認為是邏輯“假假“ 。C+中用中用bool來表來表示示邏輯型變量邏
44、輯型變量。 2.4.3 變量的初始化變量的初始化 若需要對一些變量預(yù)設(shè)初值。若需要對一些變量預(yù)設(shè)初值。 可在定義變量時同時使變量可在定義變量時同時使變量初始化。它的一般形式是:初始化。它的一般形式是: 類型類型 變量名變量名=常數(shù);常數(shù);以下是幾個示例:以下是幾個示例: char ch=a; int first=0; float x=123.45; 未對變量預(yù)先設(shè)置初值,未對變量預(yù)先設(shè)置初值,則其值是不確定的則其值是不確定的。第第2 2章章 C C的基本數(shù)據(jù)類型及運算的基本數(shù)據(jù)類型及運算 YYHYYH版版2.5 運算符及表達式運算符及表達式 各種運算符:各種運算符:(1) 算術(shù)運算符算術(shù)運算符
45、( +, -; *, /; %;+, -;)。(2) 關(guān)系運算符關(guān)系運算符(, =, =, !=)。(3) 邏輯運算符邏輯運算符(!(NOT), &(AND), | |(OR)。(4) 位運算符位運算符(, , |, , &)。(5) 賦值運算符賦值運算符(=,及其雙目運算符的擴展賦值運算符,及其雙目運算符的擴展賦值運算符)。(6) 條件運算符條件運算符(? :)。(7) 逗號運算符逗號運算符(,)。(8) 指針運算符指針運算符(*, &)。(9) 求字節(jié)數(shù)運算符求字節(jié)數(shù)運算符(sizeof)。(10) 強制類型轉(zhuǎn)換運算符強制類型轉(zhuǎn)換運算符(類型類型)。(11) 分量運
46、算符分量運算符(, -)。(12) 下標運算符下標運算符( )。(13) 圓括號運算符圓括號運算符( )。 第第2 2章章 C C的基本數(shù)據(jù)類型及運算的基本數(shù)據(jù)類型及運算 YYHYYH版版 2.5.1算術(shù)算術(shù)運算符及運算符及表達式表達式算術(shù)與賦值運算符及算術(shù)與賦值運算符及表達式表達式表表 2.4 算術(shù)運算符和賦值運算符算術(shù)運算符和賦值運算符(優(yōu)先級愈大即愈后運算優(yōu)先級愈大即愈后運算) 第第2 2章章 C C的基本數(shù)據(jù)類型及運算的基本數(shù)據(jù)類型及運算 YYHYYH版版 算術(shù)表達式的形式如下:算術(shù)表達式的形式如下: 算術(shù)表達式中運算對象算術(shù)表達式中運算對象(操作數(shù)操作數(shù))是數(shù)值,是數(shù)值, 也可也可以
47、是字符以是字符(按其按其ASCII碼值進行運算碼值進行運算),運算結(jié)果,運算結(jié)果(即表即表達式的值達式的值)是數(shù)值。是數(shù)值。 如:如: a+b*c-d/e 說明說明: 第第2 2章章 C C的基本數(shù)據(jù)類型及運算的基本數(shù)據(jù)類型及運算 YYHYYH版版 (1) +, -, *, / 與數(shù)學(xué)中運算類似,即按先乘除后加減優(yōu)先與數(shù)學(xué)中運算類似,即按先乘除后加減優(yōu)先級順序運算。注意合理添加圓括號和括號的配對。除法級順序運算。注意合理添加圓括號和括號的配對。除法(/)在在用于兩個整型數(shù)據(jù)時,其運算結(jié)果也是整數(shù),余數(shù)總是被截用于兩個整型數(shù)據(jù)時,其運算結(jié)果也是整數(shù),余數(shù)總是被截掉。掉。如如1/2的結(jié)果是的結(jié)果是
48、0;10/3的結(jié)果是的結(jié)果是3。 (2)求余運算符求余運算符(%)僅用于整型數(shù)據(jù)。它的作用是取整數(shù)除僅用于整型數(shù)據(jù)。它的作用是取整數(shù)除法的余數(shù)。如法的余數(shù)。如1%2的結(jié)果是的結(jié)果是1;10%3的結(jié)果也是的結(jié)果也是1。 實例實例:300M的運動場,一運動員從起點跑步的運動場,一運動員從起點跑步1000M后離起后離起點多遠?點多遠? 解:解:1000%300 :100M 第第2 2章章 C C的基本數(shù)據(jù)類型及運算的基本數(shù)據(jù)類型及運算 YYHYYH版版 (3) 賦值運算符賦值運算符(=):將右邊表達式先算出,再賦給左邊的:將右邊表達式先算出,再賦給左邊的變量變量(保存保存)。注意:賦值運算符左邊必須
49、是變量而不能是常。注意:賦值運算符左邊必須是變量而不能是常量或表達式。比較賦值號量或表達式。比較賦值號(=)和數(shù)學(xué)等號和數(shù)學(xué)等號(=): 賦值號賦值號(=) 數(shù)學(xué)等號數(shù)學(xué)等號(=) 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ù)類型及運算的基本數(shù)據(jù)類型及運算 YYHYY
50、H版版 難點:難點:1) 單個整型變量的增減單個整型變量的增減1運算前后綴是等價的:運算前后綴是等價的: i+/+i i=i+1 i+=1 i-/-i i=i-1 i-=1 2) 若增減若增減1又參與其它運算,即增減又參與其它運算,即增減1運算符用在表達式中時,運算符用在表達式中時,寫法寫法(前后綴前后綴)是有差別的:如果運算符在操作數(shù)前面,是有差別的:如果運算符在操作數(shù)前面, 則在表則在表達式達式“引用引用”該操作數(shù)前,先對其作加該操作數(shù)前,先對其作加1或減或減1運算運算(即增減即增減1后后再參與運算再參與運算); 如果運算符在操作數(shù)之后,則先如果運算符在操作數(shù)之后,則先“引用引用”該操該操
51、作數(shù),然后作數(shù),然后再對它作加再對它作加1或減或減1運算運算(即參與運算后再增減即參與運算后再增減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ù)類型及運算的基本數(shù)據(jù)類型及運算 YYHYYH版版#include void main( ) int x, y; x=10; y=+x; printf(“%d, %dn”, x, y); 運算結(jié)果為運算結(jié)果為 11, 11此時此時y的值和的值和x的值都為的值都為11。 然而換一種寫法:然而換一種寫法: #
52、include void main( ) int x, y; x=10; y=x+; printf(“%d, %dn”, x, y); 運行結(jié)果為運行結(jié)果為 11, 10此時此時y的值是的值是10,而而x的值自增后的值自增后為為11。 (5) +, -, *, /, % 可以與賦值號可以與賦值號“=”組成復(fù)合賦值運算符組成復(fù)合賦值運算符+=, -=, *=, /=, %=,如如a=a+b可以寫成可以寫成a+=b,a=a*b可以可以寫成寫成a*=b,其余類推,這樣書寫簡練,運行速度快。,其余類推,這樣書寫簡練,運行速度快。例子例子第第2 2章章 C C的基本數(shù)據(jù)類型及運算的基本數(shù)據(jù)類型及運算 Y
53、YHYYH版版 2.5.2 關(guān)系關(guān)系/邏輯運算符及其表達式邏輯運算符及其表達式 表 2.5 關(guān)系和邏輯運算符(表示條件) 第第2 2章章 C C的基本數(shù)據(jù)類型及運算的基本數(shù)據(jù)類型及運算 YYHYYH版版 關(guān)系表達式的形式如下:關(guān)系表達式的形式如下: 關(guān)系表達式中運算對象是數(shù)值,也可以是字符關(guān)系表達式中運算對象是數(shù)值,也可以是字符(取其取其ASCII碼值碼值), 其運算結(jié)果是邏輯量,即為其運算結(jié)果是邏輯量,即為“真真”時取時取1,為為“假假”時取時取0。 邏輯表達式的形式如下:邏輯表達式的形式如下: 邏輯表達式的運算對象是邏輯量邏輯表達式的運算對象是邏輯量(一般是一般是關(guān)系表達式關(guān)系表達式)。在
54、在C語言中規(guī)定將非零的值按語言中規(guī)定將非零的值按“真真”對對待,零值按待,零值按“假假”對對待。而運算結(jié)果為待。而運算結(jié)果為“真真”時取時取1, 為為“假假”時取時取0。 第第2 2章章 C C的基本數(shù)據(jù)類型及運算的基本數(shù)據(jù)類型及運算 YYHYYH版版 說明:說明: (1) 當關(guān)系運算符兩邊的值滿足關(guān)系時為真,返回當關(guān)系運算符兩邊的值滿足關(guān)系時為真,返回1或或true (對對C+);不滿足關(guān)系時為假,返回;不滿足關(guān)系時為假,返回0或或false(對對C+)。例如:。例如: x=10; printf(“%dn”, x=9); 則輸出為則輸出為1。又如:。又如: x=5; printf(“%dn”
55、, x=9); 則輸出為則輸出為0。 字符比較按其字符比較按其ASCII碼值進行,碼值進行, 如如A, =, , 31); 運行輸出結(jié)果為運行輸出結(jié)果為0。因為兩個。因為兩個是同一優(yōu)先級,是同一優(yōu)先級,53的結(jié)果的結(jié)果為為1, 而而11的關(guān)系不滿足,所以最后結(jié)果為的關(guān)系不滿足,所以最后結(jié)果為0。又如:。又如: printf(%dn, 1= =1135); 運行輸出結(jié)果為運行輸出結(jié)果為1。因為。因為的優(yōu)先級比的優(yōu)先級比=高,則高,則1135的結(jié)的結(jié)果為果為1,而,而1= =1的關(guān)系滿足,所的關(guān)系滿足,所以最后結(jié)果為以最后結(jié)果為1。 (3) 邏輯運算真值表如下所示,邏輯值用邏輯運算真值表如下所示,
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ù)類型及運算的基本數(shù)據(jù)類型及運算 YYHYYH版版 (5) 用圓括號來改變運算的自然優(yōu)先次序,如用圓括號來改變運算的自然優(yōu)先次序,如“!1&0”其其值為假值為假(0),因先執(zhí)行,因先執(zhí)行“!1”,然后才執(zhí)行,然后才執(zhí)行&。如果加上圓括。如果加上圓括號號“!(1&0)”后就改變了運算順序,即執(zhí)行后就改變了運算順序,即執(zhí)行“!0”操作結(jié)果為操
57、作結(jié)果為真真(1) 。 (6) 邏輯運算的轉(zhuǎn)換。邏輯運算的轉(zhuǎn)換。 !(a|b)可寫成可寫成!a&!b,而,而! (a&b)可寫成可寫成!a|! b。 (7) 注意賦值號注意賦值號“=”和關(guān)系比較符和關(guān)系比較符“=”的區(qū)別。如:的區(qū)別。如:“if(x=3) printf(“%d”,x);”和和“if(x=3) printf(“%d”,x);”有別。有別。關(guān)系表達式關(guān)系表達式 賦值表達式賦值表達式 第第2 2章章 C C的基本數(shù)據(jù)類型及運算的基本數(shù)據(jù)類型及運算 YYHYYH版版 (6) 左移運算符左移運算符使變量中的每一位向左移動,移出的最高使變量中的每一位向左移動,移出的最高位將
58、丟失位將丟失(溢出溢出),而右端補入,而右端補入0。左移表達式的形式為。左移表達式的形式為: 變量名變量名移位的位數(shù)移位的位數(shù) 例如:例如:a=15,即,即00001111,取,取a=a使變量中的每一位向右移動,移出的最低使變量中的每一位向右移動,移出的最低位將丟失,而高端補位將丟失,而高端補0(正數(shù)正數(shù))。對于負數(shù),即原最高位為。對于負數(shù),即原最高位為1時,時,右移一位,高端補右移一位,高端補0稱邏輯右移,高端補稱邏輯右移,高端補1稱算術(shù)右移,這由計稱算術(shù)右移,這由計算機系統(tǒng)決定。算機系統(tǒng)決定。 右移表達式的形式為:右移表達式的形式為:第第2 2章章 C C的基本數(shù)據(jù)類型及運算的基本數(shù)據(jù)類型
59、及運算 YYHYYH版版 變量名變量名移位的位數(shù)移位的位數(shù) 例如:例如:a=16,即即00001000,取取a=a2后后,即即a右移右移2位位,變?yōu)樽優(yōu)?0000010, 即十進制數(shù)即十進制數(shù)4。右移一位相當于除右移一位相當于除2,右移兩位,右移兩位相當于除相當于除4。 (8) 位運算符中位運算符中&, |, , 可以與賦值號可以與賦值號=組成復(fù)合賦組成復(fù)合賦值運算符值運算符&=, |=, =, =。 如如a=a&b可寫成可寫成a&=b, 其余類推。其余類推。 凡算術(shù)運算符,凡算術(shù)運算符, 位位運算符中的二目運算符均可與賦運算符中的二目運算符均可與賦值號值號“=
60、”組成復(fù)合運算符。組成復(fù)合運算符。 第第2 2章章 C C的基本數(shù)據(jù)類型及運算的基本數(shù)據(jù)類型及運算 YYHYYH版版 2.5.3 條件運算符、逗號運算符及表達式條件運算符、逗號運算符及表達式 1. 條件運算符條件運算符?及表達式及表達式 條件表達式:條件表達式: 表達式表達式1 ? 表達式表達式2:表達式表達式3 功能:功能: 先求表達式先求表達式1的值,如果為真的值,如果為真(非零非零), 則求表達式則求表達式2的的值,并把它作為整個表達式的值;如表達式值,并把它作為整個表達式的值;如表達式1的值為假的值為假(零零), 則則求表達式求表達式3的值,并把它作為整個表達式的值。的值,并把它作為整個表達式的值。 例如:例如:x=10; y=x9 ? 100:200;(結(jié)果是結(jié)果是y=100) 注意:表達式注意:表達式2或表達式或表達式3可是另一條
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 沈陽理工大學(xué)《激光器件與技術(shù)》2021-2022學(xué)年第一學(xué)期期末試卷
- 食品安全宣傳主題班會
- 沈陽理工大學(xué)《工程爆破》2023-2024學(xué)年第一學(xué)期期末試卷
- 沈陽理工大學(xué)《傳感器與檢測技術(shù)》2023-2024學(xué)年第一學(xué)期期末試卷
- 國有企業(yè)買賣合同保證金管理辦法
- 合同備案注銷、更名申請書
- 昆明機場控制區(qū)通行證考試
- 2024-2025年度部編版八年級上冊歷史復(fù)習(xí)訓(xùn)練一
- 2024水泥采購運輸合同
- 深圳矯正牙齒-口腔醫(yī)院
- (高清版)DZT 0216-2020 煤層氣儲量估算規(guī)范
- 區(qū)域銷售目標管理
- 上肢筋傷-骨傷科
- 醫(yī)院感染風險評估表(適用于病房、換藥室、治療室、注射室)
- 超聲引導(dǎo)下甲狀腺結(jié)節(jié)細針穿刺技術(shù)
- 樓盤包銷方案
- 《商務(wù)數(shù)據(jù)分析與應(yīng)用》實訓(xùn)教學(xué)大綱
- 學(xué)術(shù)論文寫作講座課件
- 讀后續(xù)寫-My+New+Brother 高三英語作文復(fù)習(xí)專題+
- 新生兒NEC個案護理
- 美國總統(tǒng)大選與民主課件
評論
0/150
提交評論