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

下載本文檔

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

文檔簡介

1、主講:劉娜娜主講:劉娜娜2010-2011-2 C+程序設(shè)計數(shù)據(jù)類型、運算符和表達(dá)式數(shù)據(jù)類型、運算符和表達(dá)式本講內(nèi)容提要:本講內(nèi)容提要:基本數(shù)據(jù)類型基本數(shù)據(jù)類型常量和變量常量和變量常用的運算符和表達(dá)式常用的運算符和表達(dá)式C+C+語言程序設(shè)計語言程序設(shè)計2010-2011-2 C+程序設(shè)計2.1C+語言的數(shù)據(jù)類型語言的數(shù)據(jù)類型基本數(shù)據(jù)類型基本數(shù)據(jù)類型字符型(字符型(char)、整型()、整型(short int、int、long int)單精度浮點型(單精度浮點型(float)、雙精度浮點型()、雙精度浮點型(double、long double)布爾型(或邏輯型布爾型(或邏輯型bool) 無值

2、型(無值型(void)構(gòu)造數(shù)據(jù)類型構(gòu)造數(shù)據(jù)類型數(shù)組數(shù)組結(jié)構(gòu)體(結(jié)構(gòu)體(struct)共用體(共用體(Union)枚舉(枚舉(enum) 類(類(class)其他其他指針指針引用引用數(shù)據(jù)類型、運算符和表達(dá)式數(shù)據(jù)類型、運算符和表達(dá)式思考:為什么需要有數(shù)據(jù)類型?2010-2011-2 C+程序設(shè)計2.1C+語言的數(shù)據(jù)類型語言的數(shù)據(jù)類型基本數(shù)據(jù)類型基本數(shù)據(jù)類型多種數(shù)據(jù)類型為程序提供更多的選擇。多種數(shù)據(jù)類型為程序提供更多的選擇。各數(shù)據(jù)類型的字節(jié)數(shù)取決于具體的編程環(huán)境。各數(shù)據(jù)類型的字節(jié)數(shù)取決于具體的編程環(huán)境。數(shù)據(jù)類型、運算符和表達(dá)式數(shù)據(jù)類型、運算符和表達(dá)式類型符號關(guān)鍵字?jǐn)?shù)的表示范圍所占位數(shù)整型字符型實型有

3、無(signed)int32-21474836482147483647(signed)short int16-327683276732unsigned int042949672953204294967295unsigned long intunsigned shortint16065535有float323.4e-383.4e38有Double/long Double641.7e-3081.7e308有char8-128127無unsigned char80255(signed)long int32-214748364821474836472010-2011-2 C+程序設(shè)計2.1C+語言的數(shù)

4、據(jù)類型語言的數(shù)據(jù)類型類型修飾符類型修飾符C+還允許在基本數(shù)據(jù)類型(除還允許在基本數(shù)據(jù)類型(除void類型外)前加上類型類型外)前加上類型修飾符,來更具體地表示數(shù)據(jù)類型。修飾符,來更具體地表示數(shù)據(jù)類型。C+的類型修飾符包括:的類型修飾符包括: signed有符號有符號unsigned無符號無符號short短型短型long長型長型數(shù)據(jù)類型、運算符和表達(dá)式數(shù)據(jù)類型、運算符和表達(dá)式2010-2011-2 C+程序設(shè)計2.1C+語言的數(shù)據(jù)類型語言的數(shù)據(jù)類型基本數(shù)據(jù)類型基本數(shù)據(jù)類型-整型整型整型數(shù)據(jù)可以分成有符號(整型數(shù)據(jù)可以分成有符號(signed)和無符號()和無符號(unsigned)兩類;每類又包

5、含長整型(兩類;每類又包含長整型(long int)、一般整型()、一般整型(int)和短整型(和短整型(short int)。)。在不同的機(jī)器、不同的操作系統(tǒng)和不同的在不同的機(jī)器、不同的操作系統(tǒng)和不同的C+編譯器中,編譯器中,數(shù)據(jù)類型的表示方式各不相同:數(shù)據(jù)類型的表示方式各不相同:16位機(jī),位機(jī),short和和int占占2字節(jié),字節(jié),long 占占4字節(jié);字節(jié);32位機(jī),位機(jī), short占占2字節(jié),字節(jié),int和和long占占4字節(jié)。字節(jié)。整型數(shù)據(jù)的存儲方式為按二進(jìn)制數(shù)形式存儲,例如十進(jìn)制整型數(shù)據(jù)的存儲方式為按二進(jìn)制數(shù)形式存儲,例如十進(jìn)制整數(shù)整數(shù)85的二進(jìn)制形式為的二進(jìn)制形式為101010

6、1,則在內(nèi)存中的存儲形式,則在內(nèi)存中的存儲形式如圖所示如圖所示 數(shù)據(jù)類型、運算符和表達(dá)式數(shù)據(jù)類型、運算符和表達(dá)式00000000010101012010-2011-2 C+程序設(shè)計2.1C+語言的數(shù)據(jù)類型語言的數(shù)據(jù)類型基本數(shù)據(jù)類型基本數(shù)據(jù)類型-整型整型按照按照C+規(guī)定,各種類型的表示范圍滿足下面的條件:短規(guī)定,各種類型的表示范圍滿足下面的條件:短整型整型整型整型長整型。表長整型。表2-1給出了給出了Microsoft C+中各種整中各種整型類型的特性。型類型的特性。 數(shù)據(jù)類型、運算符和表達(dá)式數(shù)據(jù)類型、運算符和表達(dá)式類別類型標(biāo)識符類型字節(jié)表示范圍有符號signed short int(簡寫為sh

7、ort)有符號短整型2-3276832767signed int(簡寫為int)有符號整型4-21474836482147483647signed long int(簡寫為 long)有符號長整型4-21474836482147483647無符號unsigned short int(簡寫為unsigned short)無符號短整型2065535unsigned int(簡寫為unsigned)無符號整型404294967295unsigned long int(簡寫為 unsigned long)無符號長整型4042949672952010-2011-2 C+程序設(shè)計2.1C+語言的數(shù)據(jù)類型語

8、言的數(shù)據(jù)類型基本數(shù)據(jù)類型基本數(shù)據(jù)類型-浮點型浮點型C+中有中有3種浮點類型:單精度(種浮點類型:單精度(float)、雙精度)、雙精度(double)和長雙精度()和長雙精度(long double)。)。C+中浮點數(shù)均為有符號浮點數(shù),沒有無符號浮點數(shù),表中浮點數(shù)均為有符號浮點數(shù),沒有無符號浮點數(shù),表示精度滿足下面的條件:浮點型示精度滿足下面的條件:浮點型雙精度型雙精度型長雙精度型。長雙精度型。數(shù)據(jù)類型、運算符和表達(dá)式數(shù)據(jù)類型、運算符和表達(dá)式類型標(biāo)識符類型字節(jié)可表示最小的絕對值可表示最大的絕對值float單精度型41.175494351E38 (有效數(shù)字6位)3.402823466E+38do

9、uble雙精度型82.2250738585072014308(有效數(shù)字12位)1.7976931348623158E+308long double長雙精度型82.2250738585072014308 (有效數(shù)字15位)1.7976931348623158E+3082010-2011-2 C+程序設(shè)計2.1C+語言的數(shù)據(jù)類型語言的數(shù)據(jù)類型基本數(shù)據(jù)類型基本數(shù)據(jù)類型-字符型字符型C+中有中有3種字符類型:字符型(種字符類型:字符型(char)、有符號字符型)、有符號字符型(signed char)和無符號字符型()和無符號字符型(unsigned char)。)。數(shù)據(jù)類型、運算符和表達(dá)式數(shù)據(jù)類型、

10、運算符和表達(dá)式類型標(biāo)識符類型字節(jié)表示范圍char字符型1-128127signed char有符號字符型1-128127unsigned char無符號字符型10255注意:字符型數(shù)據(jù)在操作時將按整型數(shù)處理。注意:字符型數(shù)據(jù)在操作時將按整型數(shù)處理。2010-2011-2 C+程序設(shè)計2.1C+語言的數(shù)據(jù)類型語言的數(shù)據(jù)類型基本數(shù)據(jù)類型基本數(shù)據(jù)類型-布爾型布爾型布爾類型用于表示布爾邏輯數(shù)據(jù),布爾邏輯數(shù)據(jù)只有兩個:布爾類型用于表示布爾邏輯數(shù)據(jù),布爾邏輯數(shù)據(jù)只有兩個:true和和false。注意:在注意:在C+中,布爾型的數(shù)據(jù)可以作為整型數(shù)據(jù)進(jìn)行運中,布爾型的數(shù)據(jù)可以作為整型數(shù)據(jù)進(jìn)行運算,算,true

11、為非為非0整數(shù),整數(shù),false為整數(shù)為整數(shù)0;整型數(shù)據(jù)也可以作為;整型數(shù)據(jù)也可以作為布爾型數(shù)據(jù)進(jìn)行運算,非布爾型數(shù)據(jù)進(jìn)行運算,非0整數(shù)為整數(shù)為true,整數(shù),整數(shù)0為為false。布。布爾類型數(shù)據(jù)可以施加邏輯運算。爾類型數(shù)據(jù)可以施加邏輯運算?;緮?shù)據(jù)類型基本數(shù)據(jù)類型-無值型無值型在在C+語言中它用來說明函數(shù)及其參數(shù),沒有返回值的函語言中它用來說明函數(shù)及其參數(shù),沒有返回值的函數(shù)說明為數(shù)說明為void類型的函數(shù),沒有參數(shù)的函數(shù)其形參表由類型的函數(shù),沒有參數(shù)的函數(shù)其形參表由void表示,表示,void類型的值集為一空集。類型的值集為一空集。數(shù)據(jù)類型、運算符和表達(dá)式數(shù)據(jù)類型、運算符和表達(dá)式2010-

12、2011-2 C+程序設(shè)計2.2常量常量在在C+程序運行中,有一些數(shù)據(jù)是一直不變的,這些程序運行中,有一些數(shù)據(jù)是一直不變的,這些數(shù)據(jù)稱為常量。數(shù)據(jù)稱為常量。由于程序中的數(shù)據(jù)是有類型的,所以常量是有類型的。由于程序中的數(shù)據(jù)是有類型的,所以常量是有類型的。常量的類型常量的類型常量按照不同的數(shù)據(jù)類型可以分為:常量按照不同的數(shù)據(jù)類型可以分為:字符型常量、整型常量、浮點型常量,以及字符串常量等。字符型常量、整型常量、浮點型常量,以及字符串常量等。程序是根據(jù)程序中常量的書寫格式來區(qū)分它是哪種類型常程序是根據(jù)程序中常量的書寫格式來區(qū)分它是哪種類型常量的。量的。數(shù)據(jù)類型、運算符和表達(dá)式數(shù)據(jù)類型、運算符和表達(dá)式

13、2010-2011-2 C+程序設(shè)計2.2常量常量-整型常量整型常量整型常量整型常量在程序中書寫整型常量時,沒有小數(shù)部分。用戶可根據(jù)需在程序中書寫整型常量時,沒有小數(shù)部分。用戶可根據(jù)需要用十進(jìn)制、八進(jìn)制和十六進(jìn)制的形式書寫。要用十進(jìn)制、八進(jìn)制和十六進(jìn)制的形式書寫。十進(jìn)制格式十進(jìn)制格式 :由數(shù)字由數(shù)字0至至9和正、負(fù)號組成,書寫時直接寫出數(shù)字。和正、負(fù)號組成,書寫時直接寫出數(shù)字。如:如:123,-516,+1000等。等。八進(jìn)制格式八進(jìn)制格式 :以數(shù)字以數(shù)字0開頭的數(shù)字(開頭的數(shù)字(0至至7)序列。)序列。如:如:0111,010007,0177777等。等。十六進(jìn)制格式十六進(jìn)制格式 :以以0

14、x或或0X開頭的數(shù)字(數(shù)字開頭的數(shù)字(數(shù)字0至至9、字母、字母a至至z)序列。)序列。如:如:0 x78AC,0 xFFFF等。等。數(shù)據(jù)類型、運算符和表達(dá)式數(shù)據(jù)類型、運算符和表達(dá)式2010-2011-2 C+程序設(shè)計2.2常量常量-浮點型常量浮點型常量浮點型常量浮點型常量只能用十進(jìn)制來表示??梢杂眯?shù)或指數(shù)形式表示,不分只能用十進(jìn)制來表示??梢杂眯?shù)或指數(shù)形式表示,不分單精度和雙精度類型。單精度和雙精度類型。小數(shù)格式小數(shù)格式 35.12 5.(5.0) .5(0.5)指數(shù)格式指數(shù)格式33.5E1浮點常量默認(rèn)類型為浮點常量默認(rèn)類型為double若若-35.8f,0.314e-3f(強制為強制為f

15、loat)若若0.5L(強制為強制為long double)數(shù)據(jù)類型、運算符和表達(dá)式數(shù)據(jù)類型、運算符和表達(dá)式指數(shù)的寫法:指數(shù)的寫法: 1、e前必須有數(shù)字前必須有數(shù)字 2、e后必須是整數(shù)后必須是整數(shù)非法:非法:e-03,1.2e+0.52010-2011-2 C+程序設(shè)計2.2常量常量-字符型常量字符型常量字符型常量字符型常量用一對用一對單引號單引號括起來的一個字符,單引號只是字符與其他括起來的一個字符,單引號只是字符與其他部分的分割符,不是字符的一部分,并且,不能用雙引號部分的分割符,不是字符的一部分,并且,不能用雙引號代替單引號。在單引號中的字符不能是單引號或反斜杠。代替單引號。在單引號中的

16、字符不能是單引號或反斜杠。如:如:a , A, # 合法的字符常量合法的字符常量 , 非法的字符常量非法的字符常量“A” 不代表字符常量不代表字符常量數(shù)據(jù)類型、運算符和表達(dá)式數(shù)據(jù)類型、運算符和表達(dá)式H,$ 單引號括起來的單引號括起來的ASCII字符字符 n,轉(zhuǎn)意字符(轉(zhuǎn)意字符(非非ASCII字符)字符) 如:如:A x411012010-2011-2 C+程序設(shè)計2.2常量常量-字符型常量字符型常量轉(zhuǎn)義字符轉(zhuǎn)義字符采用反斜杠后跟一個字母來代表一個控制字符,具有新的采用反斜杠后跟一個字母來代表一個控制字符,具有新的含義含義 。數(shù)據(jù)類型、運算符和表達(dá)式數(shù)據(jù)類型、運算符和表達(dá)式轉(zhuǎn)義字符轉(zhuǎn)義字符含義含

17、義ASCII碼值(十進(jìn)制)碼值(十進(jìn)制)a響鈴(BEL)7b退格(BS)8n換行(LF)10r回車(CR)13t水平制表(HT)9v垂直制表(VT)11反斜杠92單引號39”雙引號340空字符(NULL)0ddd任意字符3位八進(jìn)制數(shù)xhh任意字符2位十六進(jìn)制數(shù)2010-2011-2 C+程序設(shè)計2.2常量常量-字符串常量字符串常量字符串常量字符串常量用一對用一對雙引號雙引號括起來的字符的序列稱為字符串常量或字符括起來的字符的序列稱為字符串常量或字符串。串。字符串以雙引號為定界符,雙引號不作為字符串的一部分。字符串以雙引號為定界符,雙引號不作為字符串的一部分。如:如:“Hello”, “Good

18、 Morning!” ,“I say: “ Goodbye!”注意:字符串常量占用連續(xù)的存儲單元,在最后的字符后注意:字符串常量占用連續(xù)的存儲單元,在最后的字符后面加一個字符面加一個字符0作為字符串結(jié)束標(biāo)志。作為字符串結(jié)束標(biāo)志。 例如,如果字符變量例如,如果字符變量C1的值為的值為A,C2的值為的值為 B ,則,則在變量中存放的是在變量中存放的是A 的的ASCII碼碼65, B 的的ASCII碼碼66,在內(nèi)存中以二進(jìn)制形式存放。在內(nèi)存中以二進(jìn)制形式存放。數(shù)據(jù)類型、運算符和表達(dá)式數(shù)據(jù)類型、運算符和表達(dá)式C1C2 AB(65)(66)100000110000102010-2011-2 C+程序設(shè)計

19、“a” “a” 和和 a a 的差別?的差別?字符常量用單引號字符常量用單引號,而字符串常量用雙引號,而字符串常量用雙引號“”“”;字符常量在內(nèi)存中占一個字節(jié),而字符串都有一個結(jié)束符(字符常量在內(nèi)存中占一個字節(jié),而字符串都有一個結(jié)束符(0);他們具有的操作功能不同,字符有加減運算。他們具有的操作功能不同,字符有加減運算。 a-b+1 “a”-“b”+1 2010-2011-2 C+程序設(shè)計2.2常量常量-例例2.1例例2.1 將字符將字符A和和B賦給整型變量。用一對雙引號括起賦給整型變量。用一對雙引號括起來的字符的序列稱為字符串常量或字符串。來的字符的序列稱為字符串常量或字符串。數(shù)據(jù)類型、運算

20、符和表達(dá)式數(shù)據(jù)類型、運算符和表達(dá)式#include /預(yù)處理命令預(yù)處理命令void main()/主函數(shù)首部主函數(shù)首部 /函數(shù)體開始函數(shù)體開始 int x,y;/定義整型變量定義整型變量x和和y x=A;/將一個字符常量將一個字符常量A賦給整型變量賦給整型變量x y=B;/將一個字符常量將一個字符常量B賦給整型變量賦給整型變量y coutx = xn; /輸出整型變量輸出整型變量x的值,的值,n是換行符相當(dāng)于是換行符相當(dāng)于endl; couty = yendl;/輸出整型變量輸出整型變量y的值的值/函數(shù)結(jié)束函數(shù)結(jié)束x = 65y = 662010-2011-2 C+程序設(shè)計2.2常量常量-符號

21、常量符號常量 符號常量符號常量 常量也可用一個標(biāo)識符來代表,稱為符號常量。常量也可用一個標(biāo)識符來代表,稱為符號常量。如:如:#define PRICE 30使用符號常量的好處:使用符號常量的好處:含義清楚;含義清楚;在需要改變一個常量時可在需要改變一個常量時可“一改全改一改全改”。使用符號常量應(yīng)注意以下幾個方面:使用符號常量應(yīng)注意以下幾個方面:它不同于變量,在作用域內(nèi)其值不能改變和賦值。它不同于變量,在作用域內(nèi)其值不能改變和賦值。 如:在上例中如再用如:在上例中如再用PRICE=40;這一語句進(jìn)行賦值則是錯誤的。這一語句進(jìn)行賦值則是錯誤的。符號常量名一般用大寫,而變量名用小寫,以示區(qū)別。符號常

22、量名一般用大寫,而變量名用小寫,以示區(qū)別。數(shù)據(jù)類型、運算符和表達(dá)式數(shù)據(jù)類型、運算符和表達(dá)式在程序中任何要改變符號常量的企圖都將導(dǎo)致編譯錯誤在程序中任何要改變符號常量的企圖都將導(dǎo)致編譯錯誤2010-2011-2 C+程序設(shè)計2.2常量常量-例例2.2例例2.2符號常量的使用符號常量的使用 數(shù)據(jù)類型、運算符和表達(dá)式數(shù)據(jù)類型、運算符和表達(dá)式#define PRICE 10 /定義符號常量定義符號常量PRICE。注意此行不是語句,末尾不要加分號。注意此行不是語句,末尾不要加分號#include /預(yù)處理命令預(yù)處理命令void main() /主函數(shù)首部主函數(shù)首部 /函數(shù)體開始函數(shù)體開始 int n,s

23、um; /定義整型變量定義整型變量n和和sum n=5; /將整數(shù)將整數(shù)5賦給整型變量賦給整型變量n sum=n*PRICE; /將將n與與PRICE的乘積賦給整型變量的乘積賦給整型變量sum coutn = nn; /輸出整型變量輸出整型變量n的值的值 coutPRICE= PRICEn;/輸出符號常量輸出符號常量PRICE的值的值 coutsum = sumn;/輸出整型變量輸出整型變量sum的值的值 /函數(shù)結(jié)束函數(shù)結(jié)束n = 5PRICE= 10sum = 502010-2011-2 C+程序設(shè)計2.3變量變量變量的概念和特點變量的概念和特點每一變量就相當(dāng)于一個容器,對應(yīng)著計算機(jī)內(nèi)存中的

24、某一每一變量就相當(dāng)于一個容器,對應(yīng)著計算機(jī)內(nèi)存中的某一塊存儲單元,用于存儲程序中的數(shù)據(jù)。塊存儲單元,用于存儲程序中的數(shù)據(jù)。變量的名字變量的名字變量的名字同標(biāo)識符的命名規(guī)則。變量的名字同標(biāo)識符的命名規(guī)則。保留字不能作為變量名、函數(shù)名、類型名的使用。保留字不能作為變量名、函數(shù)名、類型名的使用。盡量盡量“見名知意見名知意”。如,。如,m_Price一般使用命名約定,如著名的匈牙利命名約定。如,一般使用命名約定,如著名的匈牙利命名約定。如, strName數(shù)據(jù)類型、運算符和表達(dá)式數(shù)據(jù)類型、運算符和表達(dá)式變量名為m_Price變量值為1.52.0變量的地址1010H1030H內(nèi)存內(nèi)存1.502010-2

25、011-2 C+程序設(shè)計2.3變量變量-定義定義定義變量定義變量程序中的每一變量,都要先定義,后使用。程序中的每一變量,都要先定義,后使用。定義變量的一般有以下三種格式:定義變量的一般有以下三種格式:數(shù)據(jù)類型數(shù)據(jù)類型 變量名;變量名;數(shù)據(jù)類型數(shù)據(jù)類型 變量名變量名=初始化值;初始化值;數(shù)據(jù)類型數(shù)據(jù)類型 變量名變量名1=初始值初始值1,變量名,變量名2=初始值初始值2,;如:如: char a; /定義字符型變量定義字符型變量a int i=1000; /定義整型變量定義整型變量i,i的初始值為的初始值為1000; float a=2,b=3,c; /定義浮點型變量定義浮點型變量 且且a、b的初

26、始值分別為的初始值分別為2、3。 變量定義的位置比較靈活變量定義的位置比較靈活數(shù)據(jù)類型、運算符和表達(dá)式數(shù)據(jù)類型、運算符和表達(dá)式在定義變量時,可以在類型前指定存儲類型:在定義變量時,可以在類型前指定存儲類型:auto(可以省略) 、register 、static 、extern 2010-2011-2 C+程序設(shè)計2.4運算符和表達(dá)式運算符和表達(dá)式運算符和表達(dá)式運算符和表達(dá)式運算運算是對數(shù)據(jù)的處理過程,表示各種不同運算的符號稱為是對數(shù)據(jù)的處理過程,表示各種不同運算的符號稱為運算符運算符,被處理的數(shù)據(jù),也就是參與運算的數(shù)據(jù)稱為,被處理的數(shù)據(jù),也就是參與運算的數(shù)據(jù)稱為操作操作數(shù)(包括變量與常量)數(shù)

27、(包括變量與常量)。而運算符與操作數(shù)組成表達(dá)式。而運算符與操作數(shù)組成表達(dá)式。一個表達(dá)式的類型是由運算符的種類和操作數(shù)的類型決定一個表達(dá)式的類型是由運算符的種類和操作數(shù)的類型決定的的 。運算可分為單目運算、雙目運算以及三目、多目運算。運算可分為單目運算、雙目運算以及三目、多目運算。優(yōu)先級優(yōu)先級優(yōu)先級是用來標(biāo)志運算符在表達(dá)式中的運算順序的。優(yōu)先級是用來標(biāo)志運算符在表達(dá)式中的運算順序的。優(yōu)先級相同的由結(jié)合性決定計算順序。優(yōu)先級相同的由結(jié)合性決定計算順序。結(jié)合性結(jié)合性結(jié)合性即結(jié)合方向是決定運算順序的一種標(biāo)志。結(jié)合性即結(jié)合方向是決定運算順序的一種標(biāo)志。從左到右,從右到左從左到右,從右到左數(shù)據(jù)類型、運算符

28、和表達(dá)式數(shù)據(jù)類型、運算符和表達(dá)式2010-2011-2 C+程序設(shè)計1.算術(shù)運算符和表達(dá)式算術(shù)運算符和表達(dá)式算術(shù)運算符和算術(shù)表達(dá)式算術(shù)運算符和算術(shù)表達(dá)式算術(shù)運算符算術(shù)運算符單目運算符:單目運算符:+,-(正負(fù)號)(正負(fù)號)雙目運算符:雙目運算符:+, -, *, /, %(求余求余)結(jié)合方向:從左向右結(jié)合方向:從左向右優(yōu)先級:優(yōu)先級: * / % + -算術(shù)表達(dá)式是指由算術(shù)運算符、括算術(shù)表達(dá)式是指由算術(shù)運算符、括號將常量、變量、函數(shù)、圓括號等號將常量、變量、函數(shù)、圓括號等連接形成的一個有意義的式子。連接形成的一個有意義的式子。(2*x-3)*x+2)*x)-5 或或 3.14*sqrt(r)數(shù)

29、據(jù)類型、運算符和表達(dá)式數(shù)據(jù)類型、運算符和表達(dá)式例: 5/2 = 2 -5/2.0 = -2.5例 : 5%2 = 1 -5%2 = -1 1%10 = 1 5%1 = 0 5.5%2 ()-5%3與5/-3的結(jié)果相同嗎?注意:注意:“-”為為單目單目運算符時運算符時,為負(fù)號運算符,為負(fù)號運算符,右結(jié)合性右結(jié)合性。兩整數(shù)相除兩整數(shù)相除(/),結(jié)果為整數(shù)。,結(jié)果為整數(shù)。參加參加+、-、*、/運算的兩個數(shù)中有一個為實數(shù),則運算的兩個數(shù)中有一個為實數(shù),則結(jié)果是結(jié)果是double型,因為所有的實數(shù)都按型,因為所有的實數(shù)都按double型型進(jìn)行運算。進(jìn)行運算。%要求兩側(cè)均為整型數(shù)據(jù)要求兩側(cè)均為整型數(shù)據(jù)。表

30、達(dá)式中的括號一律使用圓括號。表達(dá)式中的括號一律使用圓括號。2010-2011-2 C+程序設(shè)計1.算術(shù)運算符和表達(dá)式算術(shù)運算符和表達(dá)式自增和自減運算符自增和自減運算符 作用使變量的值增作用使變量的值增1或減或減1 。種類:種類:前置前置 +i,-i (先執(zhí)行先執(zhí)行i+1或或i-1,再使用,再使用i值)值)后置后置 i+,i- (先使用先使用i值,再執(zhí)行值,再執(zhí)行i+1或或i-1)數(shù)據(jù)類型、運算符和表達(dá)式數(shù)據(jù)類型、運算符和表達(dá)式例例 j=3; k=+j; j=3; k=j+; j=3; printf(“%d”,+j); j=3; printf(“%d”,j+); a=3;b=5;c=(+a)*b

31、; a=3;b=5;c=(a+)*b; /k=4,j=4/k=4,j=4/k=3,j=4/k=3,j=4/4/4/3/3/c=20,a=4/c=20,a=4/c=15,a=4/c=15,a=42010-2011-2 C+程序設(shè)計1.算術(shù)運算符和表達(dá)式算術(shù)運算符和表達(dá)式自增和自減運算符說明:自增和自減運算符說明: + - 不能用于常量和表達(dá)式不能用于常量和表達(dá)式如如5+,(a+b)+ - 結(jié)合方向:自右向左結(jié)合方向:自右向左優(yōu)先級:優(yōu)先級:+ - 與與 + - 同級同級數(shù)據(jù)類型、運算符和表達(dá)式數(shù)據(jù)類型、運算符和表達(dá)式 例例 :j+k; (j+)+k; /盡量取大原則盡量取大原則例例: i=3;

32、printf(“%d”,-i+); -3 i=4注意:盡可能多地(從左至右)將若干字符組成一個運算符 2010-2011-2 C+程序設(shè)計2.關(guān)系運算符和表達(dá)式關(guān)系運算符和表達(dá)式關(guān)系運算符和關(guān)系表達(dá)式關(guān)系運算符和關(guān)系表達(dá)式關(guān)系運算符就是對兩個量之間進(jìn)行比較的運算符,如下表關(guān)系運算符就是對兩個量之間進(jìn)行比較的運算符,如下表所示。所示。數(shù)據(jù)類型、運算符和表達(dá)式數(shù)據(jù)類型、運算符和表達(dá)式關(guān)系運算符關(guān)系運算符含義含義例子例子10=小于或等于小于或等于(x+y)*2大于大于x+yz=大于或等于大于或等于x-y=a*b+2= =等于等于x+y=a+b!=不等于不等于x-y!=02010-2011-2 C+程

33、序設(shè)計2.關(guān)系運算符和表達(dá)式關(guān)系運算符和表達(dá)式關(guān)系運算符和關(guān)系表達(dá)式關(guān)系運算符和關(guān)系表達(dá)式由關(guān)系運算符將兩個表達(dá)式連接形成的運算式子是關(guān)系表由關(guān)系運算符將兩個表達(dá)式連接形成的運算式子是關(guān)系表達(dá)式,一個關(guān)系表達(dá)式的值是一個邏輯值,當(dāng)為真時,值達(dá)式,一個關(guān)系表達(dá)式的值是一個邏輯值,當(dāng)為真時,值為為1,為假時,值為,為假時,值為0。如:假設(shè)如:假設(shè)a=1,b=20,c=3,則,則a10)&邏輯與邏輯與(i1) & (ic)的值為的值為1(真)。(真)。數(shù)據(jù)類型、運算符和表達(dá)式數(shù)據(jù)類型、運算符和表達(dá)式aba&ba|b!a!b真真真真真真真真假假假假真真假假假假真真假假真真假假真

34、真假假真真真真假假假假假假假假假假真真真真2010-2011-2 C+程序設(shè)計3.邏輯運算符和表達(dá)式邏輯運算符和表達(dá)式邏輯運算符和邏輯表達(dá)式邏輯運算符和邏輯表達(dá)式在計算邏輯表達(dá)式時,在計算邏輯表達(dá)式時,C+遵循一種所謂遵循一種所謂“短路計算法短路計算法” :在邏輯表達(dá)式的求值過程中,并不是所有的邏輯運算符都被執(zhí)行,在邏輯表達(dá)式的求值過程中,并不是所有的邏輯運算符都被執(zhí)行,只是在必須執(zhí)行下一個邏輯運算符才能求出表達(dá)式的值時,才執(zhí)行只是在必須執(zhí)行下一個邏輯運算符才能求出表達(dá)式的值時,才執(zhí)行該運算符該運算符。 a & b & c 只有只有a為真時,才需要判別為真時,才需要判別b的值,

35、只有的值,只有a和和b的值都為的值都為真時才需要判別真時才需要判別c的值的值。 如:如:int i=10;則表達(dá)式則表達(dá)式i & (i=0) & (+i)的值為的值為0(假),該表(假),該表達(dá)式運算結(jié)束后,變量達(dá)式運算結(jié)束后,變量i的值為的值為0,而不是,而不是1。 a | b|c 只要只要a為真,就不必須判斷為真,就不必須判斷b和和c;只有;只有a為假,才判別為假,才判別b;a和和b 都為假才判別都為假才判別c。 如:如:int i=1,j; 則表達(dá)式則表達(dá)式i+|i+|i+的值為的值為1(真),運算結(jié)束后,(真),運算結(jié)束后,變量變量i的值為的值為2,而不是,而不是4。數(shù)

36、據(jù)類型、運算符和表達(dá)式數(shù)據(jù)類型、運算符和表達(dá)式2010-2011-2 C+程序設(shè)計3.邏輯運算符和表達(dá)式邏輯運算符和表達(dá)式邏輯運算符和邏輯表達(dá)式邏輯運算符和邏輯表達(dá)式邏輯表達(dá)式的使用注意事項:邏輯表達(dá)式的使用注意事項:對于數(shù)學(xué)上的表示多個數(shù)據(jù)間進(jìn)行比較的表達(dá)式,在對于數(shù)學(xué)上的表示多個數(shù)據(jù)間進(jìn)行比較的表達(dá)式,在C或或C+中要中要拆寫成多個條件并用邏輯運算符連接形成一個邏輯表達(dá)式。拆寫成多個條件并用邏輯運算符連接形成一個邏輯表達(dá)式。 如:在數(shù)學(xué)上,要表示一個變量如:在數(shù)學(xué)上,要表示一個變量a的值處于的值處于-1和和-9之間時,可以用之間時,可以用-9a-9 & a-1,而不能寫成,而不能寫

37、成-9a-1。 因為,假設(shè)變量因為,假設(shè)變量a當(dāng)前的值為當(dāng)前的值為-5,它的值確實處在,它的值確實處在-1和和-9之間,但在之間,但在C+語言中求語言中求-9a-1時,從左向右進(jìn)行計算,先計算時,從左向右進(jìn)行計算,先計算-9a,得,得1 (真),此時該表達(dá)式可簡化為(真),此時該表達(dá)式可簡化為1-9 & a-1的形式。的形式。數(shù)據(jù)類型、運算符和表達(dá)式數(shù)據(jù)類型、運算符和表達(dá)式2010-2011-2 C+程序設(shè)計4.位運算符位運算符位運算符位運算符所謂位運算符是指能進(jìn)行二進(jìn)制位運算的運算符。所謂位運算符是指能進(jìn)行二進(jìn)制位運算的運算符。C+提提供的位運算符如下表所示。供的位運算符如下表所示。

38、數(shù)據(jù)類型、運算符和表達(dá)式數(shù)據(jù)類型、運算符和表達(dá)式運算符運算符含義含義例子例子&按位與按位與i&128|按位或按位或j|64按位異或按位異或j12按位取反按位取反j按位左移按位左移i按位右移按位右移j22010-2011-2 C+程序設(shè)計4.位運算符位運算符邏輯位運算符邏輯位運算符位運算的運算規(guī)則位運算的運算規(guī)則按位與按位與& 兩個運算量相應(yīng)的位都是兩個運算量相應(yīng)的位都是1,則該位的結(jié)果值為,則該位的結(jié)果值為1,否則為,否則為0;按位或按位或| 兩個運算量相應(yīng)的位只要有一個是兩個運算量相應(yīng)的位只要有一個是1,則該位的結(jié)果為,則該位的結(jié)果為1,否則為,否則為0;按位異或按位

39、異或 兩個運算量相應(yīng)的位不同,則該位的結(jié)果值為兩個運算量相應(yīng)的位不同,則該位的結(jié)果值為1,否則為,否則為0;按位取反按位取反 將運算量的每一位取反。將運算量的每一位取反。例:例:char a=37,b=44; 數(shù)據(jù)類型、運算符和表達(dá)式數(shù)據(jù)類型、運算符和表達(dá)式a=37b=44 a的值 b的值 a&b的值 a|b的值 ab的值 2010-2011-2 C+程序設(shè)計4.位運算符位運算符移位運算符移位運算符移移位運算的運算規(guī)則位運算的運算規(guī)則按位左移按位左移 將操作數(shù)中的每一位向右移動指定的位數(shù),移出的位被舍棄,空出的將操作數(shù)中的每一位向右移動指定的位數(shù),移出的位被舍棄,空出的位補位補0或補符

40、號位?;蜓a符號位。例如:例如:char a=37,b=44; 說明:左移說明:左移1位相當(dāng)于該數(shù)乘位相當(dāng)于該數(shù)乘2 右移右移1位相當(dāng)于該數(shù)除位相當(dāng)于該數(shù)除2數(shù)據(jù)類型、運算符和表達(dá)式數(shù)據(jù)類型、運算符和表達(dá)式a=37b=44a1(22)2010-2011-2 C+程序設(shè)計5.賦值運算符和表達(dá)式賦值運算符和表達(dá)式賦值運算符和賦值表達(dá)式賦值運算符和賦值表達(dá)式賦值運算符的功能將某個數(shù)據(jù)的值賦給某個變量。賦值運算符的功能將某個數(shù)據(jù)的值賦給某個變量。賦值運算符的用法格式:賦值運算符的用法格式:變量名變量名 賦值運算符賦值運算符 常量、變量或表達(dá)式常量、變量或表達(dá)式說明:說明:被賦值的目標(biāo),即賦值運算符左邊的

41、量必須是變量,而不能是常量被賦值的目標(biāo),即賦值運算符左邊的量必須是變量,而不能是常量或表達(dá)式。或表達(dá)式。數(shù)據(jù)類型、運算符和表達(dá)式數(shù)據(jù)類型、運算符和表達(dá)式2010-2011-2 C+程序設(shè)計5.賦值運算符和表達(dá)式賦值運算符和表達(dá)式賦值運算符和賦值表達(dá)式賦值運算符和賦值表達(dá)式說明:說明:C+中的賦值運算符如下表所示。中的賦值運算符如下表所示。數(shù)據(jù)類型、運算符和表達(dá)式數(shù)據(jù)類型、運算符和表達(dá)式賦值運算符賦值運算符例子例子等價形式等價形式=x=x+yx=x+y+=x+=y+zx=x+(y+z)-=x-=y+zx=x-(y+z)*=x*=y+zx=x*(y+z)/=x/=y+zx=x/(y+z)%=x%=

42、y+zx=x%(y+z)2010-2011-2 C+程序設(shè)計5.賦值運算符和表達(dá)式賦值運算符和表達(dá)式賦值運算符和賦值表達(dá)式賦值運算符和賦值表達(dá)式說明:說明:要注意區(qū)分賦值運算符要注意區(qū)分賦值運算符“=”與數(shù)學(xué)上的與數(shù)學(xué)上的“等號等號”間的區(qū)別,如間的區(qū)別,如:int x,y; /定義變量定義變量x,y為為int類型變量類型變量x=10; /將變量將變量x賦成值賦成值10 x=x+20; /將將x的值在原值(的值在原值(10)的基礎(chǔ)上再加上值)的基礎(chǔ)上再加上值20后(后(結(jié)果為結(jié)果為30)賦給變量賦給變量xy-=x+5; /等價于等價于y=y-(x+5);右邊表達(dá)式的值為;右邊表達(dá)式的值為30-

43、(31+5)=-6,y被被賦成值賦成值-6x%=y+10; /等價于等價于x=x%(y+10);右邊表達(dá)式的值為;右邊表達(dá)式的值為31%(-6+10)=3,y被賦成值被賦成值3數(shù)據(jù)類型、運算符和表達(dá)式數(shù)據(jù)類型、運算符和表達(dá)式2010-2011-2 C+程序設(shè)計5.賦值運算符和表達(dá)式賦值運算符和表達(dá)式復(fù)合位運算符復(fù)合位運算符位運算符與賦值運算符結(jié)合可以形成復(fù)合位運算符,如下位運算符與賦值運算符結(jié)合可以形成復(fù)合位運算符,如下表所示。表所示。數(shù)據(jù)類型、運算符和表達(dá)式數(shù)據(jù)類型、運算符和表達(dá)式運算符運算符例子例子等價形式等價形式&=x&=y+zx=x&(y+z)|=x|=x+2x

44、=x|(x+2)=x=yx=xy=x=y+zx=x=x=y+zx=x(y+z)2010-2011-2 C+程序設(shè)計6.其他運算符其他運算符-sizeof運算符運算符sizeof運算符運算符sizeof運算符功能是求某一數(shù)據(jù)類型或某一變量在運算符功能是求某一數(shù)據(jù)類型或某一變量在內(nèi)存中所占空間的字節(jié)數(shù)。內(nèi)存中所占空間的字節(jié)數(shù)。其使用的一般形式:其使用的一般形式:sizeof(變量名或數(shù)據(jù)類型變量名或數(shù)據(jù)類型) 或或 sizeof 變量名或數(shù)據(jù)類型變量名或數(shù)據(jù)類型舉例舉例數(shù)據(jù)類型、運算符和表達(dá)式數(shù)據(jù)類型、運算符和表達(dá)式例: #include void main() short aShort; int

45、 anInt; long aLong; char aChar; float aFloat; coutdata typetmemory used(bytes); coutnshort inttsizeof(aShort); coutninteger tsizeof(anInt); coutnlong integertsizeof(aLong); coutnchar achartsizeof(aChar); coutnfloat tsizeof(aFloat); coutndouble tsizeof(double); coutnlong doubletb?a:b的值為的值為4。c=a-b?a+b

46、:a-3?b:a c的值為的值為7數(shù)據(jù)類型、運算符和表達(dá)式數(shù)據(jù)類型、運算符和表達(dá)式2010-2011-2 C+程序設(shè)計6.其他運算符其他運算符-強制類型轉(zhuǎn)換強制類型轉(zhuǎn)換運算符運算符強制類型轉(zhuǎn)換運算符強制類型轉(zhuǎn)換運算符該運算符的功能是將某一數(shù)據(jù)從一種數(shù)據(jù)類型向另一種數(shù)該運算符的功能是將某一數(shù)據(jù)從一種數(shù)據(jù)類型向另一種數(shù)據(jù)類型進(jìn)行轉(zhuǎn)換。其使用的一般形式:據(jù)類型進(jìn)行轉(zhuǎn)換。其使用的一般形式:數(shù)據(jù)類型標(biāo)識符數(shù)據(jù)類型標(biāo)識符 (表達(dá)式)(表達(dá)式)(數(shù)據(jù)類型標(biāo)識符)表達(dá)式(數(shù)據(jù)類型標(biāo)識符)表達(dá)式如:如:int i=2;float a,b;a=float(i);/將變量將變量i的值強制轉(zhuǎn)換為浮點型,并賦給變量的值

47、強制轉(zhuǎn)換為浮點型,并賦給變量ab=(float)i;/將變量將變量i的值強制轉(zhuǎn)換為浮點型,并賦給變量的值強制轉(zhuǎn)換為浮點型,并賦給變量b數(shù)據(jù)類型、運算符和表達(dá)式數(shù)據(jù)類型、運算符和表達(dá)式2010-2011-2 C+程序設(shè)計6.其他運算符其他運算符-逗號逗號運算符運算符逗號運算符逗號運算符逗號運算符的運算優(yōu)先級是最低的。一般形式為:逗號運算符的運算優(yōu)先級是最低的。一般形式為:表達(dá)式表達(dá)式1,表達(dá)式,表達(dá)式2,表達(dá)式,表達(dá)式N在計算逗號表達(dá)式的值時,按從左至右的順序依次分別計在計算逗號表達(dá)式的值時,按從左至右的順序依次分別計算各個表達(dá)式的值,而整個逗號表達(dá)式的值和類型是由最算各個表達(dá)式的值,而整個逗號表達(dá)式的值和類型是由最右邊的表達(dá)式?jīng)Q定。右邊的表達(dá)式?jīng)Q定。如:有語句如:有語句int a=3,b=4;則表達(dá)式;則表達(dá)式a+,b+,a+b的值為的值為9。再如:設(shè)有再如:設(shè)有int i;則表達(dá)式則表達(dá)式i=1,i+=2?i+1:i+4的值為的值為6。數(shù)據(jù)類型、運算符和表達(dá)式數(shù)據(jù)類型、運算符和表達(dá)式2010-2011-2 C+程序設(shè)計6.其他運算符其他運算符其他運算符其他運算符指針運算符指針運算符 *函數(shù)調(diào)用符函數(shù)調(diào)用符 ( )動態(tài)分配符動態(tài)分配符

溫馨提示

  • 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論