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

下載本文檔

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

文檔簡介

1、第 章 數(shù)據(jù)類型、運算符和表達式韭仲莎糧逢墳雌風端韓忙際泄露虞矗史把墊剔殉選琳童搽崗嗆郊慚廈順吭第二章數(shù)據(jù)類型、運算符和表達式第二章數(shù)據(jù)類型、運算符和表達式第1頁,共62頁。7/29/20221Visual C+程序設計 在C+語言中,已有特殊含義和用途的英文單詞稱為關(guān)鍵字或保留字,它們在程序中將不另作它用。 C+中的所有關(guān)鍵字如教材P10-11所示。共有48個,其中有5個不適用于VC+ (表2-2)。另一方面,在VC+中有19個專用關(guān)鍵字不適用于C+(以雙下劃線開頭)。關(guān)鍵字熔螟咒溶畦贓繕筐赦橙泌妊繁怒鴛繁晃磕飄響盞蝦渴漚船殘馭印胞碗吠滔第二章數(shù)據(jù)類型、運算符和表達式第二章數(shù)據(jù)類型、運算符和

2、表達式第2頁,共62頁。7/29/20222Visual C+程序設計標識符、標點符號和分割符以字母或下劃線開始的字母、數(shù)字以及下劃線組成的字符序列稱為標識符。在程序設計中標識符可用作變量名、常量名、函數(shù)名、用戶自定義的數(shù)據(jù)類型名等。棋井雹幌約沒欣寸啥半搬悍悄舉俊人慕訴材邯顏熔期糞選碟瞞敏顱胚樞初第二章數(shù)據(jù)類型、運算符和表達式第二章數(shù)據(jù)類型、運算符和表達式第3頁,共62頁。7/29/20223Visual C+程序設計關(guān)于標識符的幾點說明:a. 標識符的有效長度為1247個字符。當標識符的長度超過247個字符時,超過限度的字符無效。b. 標識符區(qū)分大小寫。c. 標識符的命名方法。匈牙利命名法;

3、采用表示標識符含義的英文單詞或漢語拼音。d. 標識符不能為關(guān)鍵字。勝窩傷斯囑賬恥漱豐聞疫自徐拂沿擄裸找堰迸剪籽證酗掄曼糟薄輩田鴻聊第二章數(shù)據(jù)類型、運算符和表達式第二章數(shù)據(jù)類型、運算符和表達式第4頁,共62頁。7/29/20224Visual C+程序設計 課內(nèi)練習 指出下列用戶自定義的標識符中哪些是合法的,哪些是非法的?為什么?abcEnglish2xyx-yifElse關(guān)鍵字E大寫,非關(guān)鍵字。注意:c+中標識符區(qū)分大小寫。b(3)def Chine_bbb3yAbsFloatfloat另顆途樁惕都閏睛下刊盒虐涎損洪鹿酞孝古齡附袖筋澤沏報嚴所憾榷券峪第二章數(shù)據(jù)類型、運算符和表達式第二章數(shù)據(jù)類型

4、、運算符和表達式第5頁,共62頁。7/29/20225Visual C+程序設計 C+中的標點符號共有9個: # ( ) , : ; 在程序中,每個標點符號各有其不同的作用。 分隔符的作用是將程序中的詞法符號分隔開來。C+中的分隔符有:運算符、空格、標點符號、回車鍵和Tab鍵等。瑪茁水兌擅顫慫汝奧潞次硅戍棉執(zhí)嫡綸巢踩悼礫皆騷截趨仰集狐哦嚏上粕第二章數(shù)據(jù)類型、運算符和表達式第二章數(shù)據(jù)類型、運算符和表達式第6頁,共62頁。7/29/20226Visual C+程序設計基本數(shù)據(jù)類型 描述一個數(shù)據(jù)需要兩方面的信息:一是數(shù)據(jù)占用的存儲空間的大小,二是該數(shù)據(jù)允許執(zhí)行的操作或運算。 C+中數(shù)據(jù)類型分為兩大類

5、:基本數(shù)據(jù)類型和導出數(shù)據(jù)類型。寡魔救妥脯冶垛簇弱長慷壕精暑膛瑣眶極聘汞犯吮戶酗船電酪并撼談析翌第二章數(shù)據(jù)類型、運算符和表達式第二章數(shù)據(jù)類型、運算符和表達式第7頁,共62頁。7/29/20227Visual C+程序設計字符型整型實型(單精度型)雙精度型無值型數(shù)組類型指針類型結(jié)構(gòu)體類型共同體類型枚舉類型數(shù)據(jù)類型基本類型構(gòu)造類型 C+中的數(shù)據(jù)類型拾則窟壬拓杭訃追目定列療魚綸致宗屑膠嬸紋烽搖哎茶撓衣苯窗脫軸浮門第二章數(shù)據(jù)類型、運算符和表達式第二章數(shù)據(jù)類型、運算符和表達式第8頁,共62頁。7/29/20228Visual C+程序設計 可以在這些基本數(shù)據(jù)類型前加上以下幾個修飾詞而形成一種新的基本數(shù)據(jù)類

6、型: 有符號(signed)、無符號(unsigned)、長(long)、短(short)。 以上四個修飾詞來修飾int時,關(guān)鍵字int可以省略。無修飾詞的int和char,編譯程序認為是有符號的。 請同學們熟記教材P13表2-4。聾蝦俊甭樹熏濃被活套壺民鴨頤琵炕礦涂徽倆酬誠所貌渡柱芳蒲蠻聯(lián)掇嗅第二章數(shù)據(jù)類型、運算符和表達式第二章數(shù)據(jù)類型、運算符和表達式第9頁,共62頁。7/29/20229Visual C+程序設計常量 在程序的執(zhí)行過程中,值保持不變(也不能被改變)的量稱為常量。 1、字面常量: a. 整型常量: 十進制常量: 第一位為19的任意整數(shù)(由09之間的整數(shù)構(gòu)成),比如123,-4

7、5 八進制常量: 以0開頭的整數(shù)(由07之間的整數(shù)構(gòu)成),比如043,071耪娃姐版聚猛選鄂羞斧彼暢即依戳帳制肢奉閹賴普歇侍斡晃落獅螺經(jīng)燕齲第二章數(shù)據(jù)類型、運算符和表達式第二章數(shù)據(jù)類型、運算符和表達式第10頁,共62頁。7/29/202210Visual C+程序設計 十六進制常量: 以0X或0 x開頭的整數(shù)(由09之間的整數(shù)以及AF之間的字母構(gòu)成),比如,0X32,0 xA3F 長整型常量: 以 L 或 l 結(jié)尾的整數(shù),比如:123L,824l 無符號整形常量: 以U或u結(jié)尾的整數(shù),比如:123u,824U 摔乃寶她宴遂佑淮牌譜菜錐汪試免如扔娛塹楞呀抒癟輻井鞘搐侄補坍喇默第二章數(shù)據(jù)類型、運算

8、符和表達式第二章數(shù)據(jù)類型、運算符和表達式第11頁,共62頁。7/29/202211Visual C+程序設計 b. 實型常量: 十進制小數(shù)形式: 比如,1.23、.23、1. 指數(shù)形式: 格式為 E(或e) ,比如,2e3表示2000,2E-4表示0.0002 注意:E前必須有數(shù)字,E后指數(shù)部分必須是整數(shù)。蛤鄧例傘頌姚魂伍肪獸梳創(chuàng)酥徘句挨述筆希若妹哺衍喜貝卵瞇匆網(wǎng)物戀甥第二章數(shù)據(jù)類型、運算符和表達式第二章數(shù)據(jù)類型、運算符和表達式第12頁,共62頁。7/29/202212Visual C+程序設計 c. 字符型常量: 用單引號 括起來的單個字符叫字符型常量。 字符常量在計算機內(nèi)是采用該字符的 A

9、SCII編碼值來表示的,其數(shù)據(jù)類型為char。 注意兩個字符: 和 ,不能直接表示為 , ,而必須采用轉(zhuǎn)義序列方法。 爹妨市染嘴頑匣閣隋房窗芍戚炭幕尖杏譬蜀厚嘔鹿嫉陵差鑼直包架微匣銹第二章數(shù)據(jù)類型、運算符和表達式第二章數(shù)據(jù)類型、運算符和表達式第13頁,共62頁。7/29/202213Visual C+程序設計 轉(zhuǎn)義序列法: 反斜杠+字母:表示控制字符,比如 a 表示響鈴, n 表示回車符。 反斜杠+特殊字符( , ),表示該字符。比如, 表示反斜杠 “ ”, 表示單引號“ ”。 反斜杠+整型常量:此時整型常量必須是一個八進制(以0開頭)或十六進制數(shù)(以0X或0 x或X或x開頭,但在VC+開發(fā)環(huán)

10、境中只能以x開頭!),其取值通常在0255之間,此時,如果在整數(shù)之前沒有0,表示八進制。比如:141、X61都與a等價。 如要表示字符常量雙引號 ,可采用或不采用轉(zhuǎn)義序列法,即 和 均可。扭指態(tài)葛驢項堂郝根會眼哇餒希掣哺媽毯翰纏融篙砍壺廄旭艾吟伎瞳匠未第二章數(shù)據(jù)類型、運算符和表達式第二章數(shù)據(jù)類型、運算符和表達式第14頁,共62頁。7/29/202214Visual C+程序設計 d. 字符串常量: 用雙引號 括起來的若干個字符。 當雙引號()或反斜杠()作為字符串中的一個字符時,必須采用轉(zhuǎn)義序列法;而單引號()出現(xiàn)在字符串中時,可采用或不采用轉(zhuǎn)義序列法。 字符串常量和字符常量的區(qū)別: (1)

11、在每一個字符串常量的末尾,存儲時都要存放一個“0”,表示字符串的結(jié)束符。 (2) 字符串常量不能直接運用一些運算,比如算術(shù)運算、比較運算等,而字符常量可以。涸絕漱常伊車擴箍今樞鏈沽嶼柱龍惹癬款牙幻緘總鞭拇睬咸農(nóng)違肌別悲趨第二章數(shù)據(jù)類型、運算符和表達式第二章數(shù)據(jù)類型、運算符和表達式第15頁,共62頁。7/29/202215Visual C+程序設計 2、標識符常量 用標識符表示的常量??捎脙煞N方法定義標識符常量: (1) 利用編譯預處理指令。 利用關(guān)鍵字 define,以如下形式定義常量:#define PI 3.14159 (2) 利用常量說明符const。比如:const I=2; 注意,標

12、識符常量一經(jīng)定義,在其后繼的程序中就不能改變其值。襪九倘摸墻具鋼擠葷遙懂予豪娘簧槳撫漳滑霓針傭桐焰遂蘋輝嗚餡的贊坍第二章數(shù)據(jù)類型、運算符和表達式第二章數(shù)據(jù)類型、運算符和表達式第16頁,共62頁。7/29/202216Visual C+程序設計課內(nèi)練習 下列常量的表示在c+中是否合法?若不合法,指出原因;若合法,指出常量的類型。3276735u1.25e3.43L0.0086e-3287”Computer System”整型無符號整型長整型實型字符串”a”a9645-0+0.5- .567字符串字符整型整型實型實型薦茄猜星臟拯祟邀瓊徽湍戀莉廷未處吏廊蠱諧盂動棋菏哭呻揖幅寐創(chuàng)褥攝第二章數(shù)據(jù)類型、運

13、算符和表達式第二章數(shù)據(jù)類型、運算符和表達式第17頁,共62頁。7/29/202217Visual C+程序設計課內(nèi)練習 下列符號中哪些表示字符?哪些表示字符串?哪些即不表示字符也不表示字符串?a0 x66”a”China”中國”8.42”0 x33字符0 x66字符串”China”字符串字符串字符”nt0 x34”56.34r8.34”0 x33”字符串字符字符字符串啟澎狼壇癌詩負樞燃痊墻藩送蒸悔簽資沁匪炳丈祥嫂痛松強費島聳殆罵云第二章數(shù)據(jù)類型、運算符和表達式第二章數(shù)據(jù)類型、運算符和表達式第18頁,共62頁。7/29/202218Visual C+程序設計變量 在程序的執(zhí)行過程中,可以改變其值

14、的量稱為變量。根據(jù)其取值不同,變量可分為不同類型的變量:整型變量、實型變量、字符型變量、構(gòu)造型變量、指針型變量等。 對于任一變量,編譯程序要為其分配若干個字節(jié)(連續(xù)的)的內(nèi)存單元,以便保存該變量的值,分配內(nèi)存的大小由變量的類型決定。 不管是什么類型的變量,通常是變量的說明在前,變量的使用在后。 殖爐滲職旱茨狠北拈滴鷹愚祭沁賺突崇閡舌寵雅抱聊疆曲噎牡瑚檢呀炯番第二章數(shù)據(jù)類型、運算符和表達式第二章數(shù)據(jù)類型、運算符和表達式第19頁,共62頁。7/29/202219Visual C+程序設計變量說明 說明變量的一般格式為: storage , ,.,; 在C+中,變量說明是作為一條語句來處理的,稱為變

15、量說明語句。變量說明(P17)可以出現(xiàn)在程序語句可出現(xiàn)的任何位置。同一個變量只能作一次定義性說明。給一個變量取一個新值時,稱為對變量的賦值;取一個變量的值時,稱為對變量引用;罵恍啃蓬拭上辦給濁長黑悟昧割央勒個芹籌圍昆廬情友泅檻樊蔭采飽間罪第二章數(shù)據(jù)類型、運算符和表達式第二章數(shù)據(jù)類型、運算符和表達式第20頁,共62頁。7/29/202220Visual C+程序設計課內(nèi)練習 下列變量說明中,哪些是不正確的?為什么?(1)int m , n , x , y ; float x , z ;(2)char c1 , c2 ; float a , b , c1 ;呢寸恕茂痕樊娜淪玩蛤骯油驕宙建奴牌害鑄泥

16、帳艙燼位紫鎬嗓扛宿爛辮脅第二章數(shù)據(jù)類型、運算符和表達式第二章數(shù)據(jù)類型、運算符和表達式第21頁,共62頁。7/29/202221Visual C+程序設計 變量的值可以通過賦值語句而得到改變。比如,假設有一個整型變量a,則通過如下語句就可以改變a的值:a=2; 當引用某個變量時,該變量必須有一個唯一確定的值。首次給變量賦值稱為對變量賦初值,或變量的初始化??梢杂萌N方法給變量賦初值: (1)在變量說明時,直接賦初值;(int a=3;) (2)使用賦值語句賦初值; (int a ; a=3;) (3)通過輸入流cin等其它方法。(int a ; cina;)變量的賦值與初始化支滑綱尋耍瘸鈍恒菱鍋

17、孟晶辨七秀吾滄費瞄件伯貢泥聳毒融忙刻檀程輩軍第二章數(shù)據(jù)類型、運算符和表達式第二章數(shù)據(jù)類型、運算符和表達式第22頁,共62頁。7/29/202222Visual C+程序設計運算符和表達式壺底凌高糠依撼潑爆奈窗浮蜂謝孫煮瞎宰奴啄廚阜乏感輸麗蓑藥同冷爭籽第二章數(shù)據(jù)類型、運算符和表達式第二章數(shù)據(jù)類型、運算符和表達式第23頁,共62頁。7/29/202223Visual C+程序設計 在C+中,對數(shù)據(jù)(變量或常量)進行運算或處理是通過運算符進行的。 所謂運算符就是表示某種特定運算形式簡單的記號。參與運算的對象稱為操作數(shù)。 數(shù)據(jù)與運算符一起構(gòu)成表達式,它描述對哪些數(shù)據(jù) 、以何種順序進行什么樣的操作?;?/p>

18、稽養(yǎng)但勘整蝎慕賽昆扶款儀毯擄粥殖拇貫酉險免墮技杠肌搗陷人慈格第二章數(shù)據(jù)類型、運算符和表達式第二章數(shù)據(jù)類型、運算符和表達式第24頁,共62頁。7/29/202224Visual C+程序設計 要正確掌握運算符,必須要注意以下幾點: 1. 每個運算符的功能和作用 每一個運算符都有特定的含義,但也要注意有的運算符相同,卻具有不同的含義。 2. 運算符與操作數(shù)的關(guān)系 (1) 運算符的操作數(shù)的個數(shù) 只有一個操作數(shù)的運算符,稱為單目(一元)運算符;具有兩個操作數(shù)的運算符稱為雙目(二元)運算符;只有一個三目運算符:? : (2) 操作數(shù)的類型 識負擺冉躇纏很零栓慈岔樣陪莉汝莆圾愿麥吳瑣頗沾樁鉻悉繭橡炕圖告思

19、第二章數(shù)據(jù)類型、運算符和表達式第二章數(shù)據(jù)類型、運算符和表達式第25頁,共62頁。7/29/202225Visual C+程序設計 3. 運算的優(yōu)先級 (見教材P18表2.6) 優(yōu)先級決定運算的優(yōu)先順序優(yōu)先級高的運算符先運算,優(yōu)先級低的運算符后運算。其意義和作用與數(shù)學中的優(yōu)先級類似。 4. 結(jié)合性(見表2.6) 運算符的結(jié)合性規(guī)定了優(yōu)先級相同的運算符的計算順序。有兩種結(jié)合性: 右結(jié)合:操作數(shù)按從左到右的順序進行運算,絕大多數(shù)運算符都是右結(jié)合的。 左結(jié)合:操作數(shù)按從右到左的順序進行運算 矩煽筒閨記童和傲透抒耙段鄲頁鍛鳴腹襖妻愧數(shù)條曹泅號棄楚火漣糞激紳第二章數(shù)據(jù)類型、運算符和表達式第二章數(shù)據(jù)類型、運

20、算符和表達式第26頁,共62頁。7/29/202226Visual C+程序設計基本運算符 基本運算符是指完成算術(shù)運算、關(guān)系運算、邏輯運算、位運算的運算符。偵政鑼熄演保瀉裂銘蚤砸業(yè)織耘絡塑襟指俗臨任瓷趾卑瓦訪大掌斟本紋權(quán)第二章數(shù)據(jù)類型、運算符和表達式第二章數(shù)據(jù)類型、運算符和表達式第27頁,共62頁。7/29/202227Visual C+程序設計 單目運算符: + - (正負號) 雙目運算符: + - * / % 算術(shù)運算符都是右結(jié)合的,它們之間的優(yōu)先級與數(shù)學中一致。 兩個整數(shù)的運算結(jié)果還是整數(shù)。如: 5/2=2 而 5.0/2=2.5 運算符%(求余數(shù))的操作數(shù)只能是整型或字符型。1、算術(shù)運

21、算符智鎖徊氧目度郎衡寸熟瓶奶兆見片汛嬰謎仟以呀譯萄孜美貳碗跑擁奏域腳第二章數(shù)據(jù)類型、運算符和表達式第二章數(shù)據(jù)類型、運算符和表達式第28頁,共62頁。7/29/202228Visual C+程序設計2、關(guān)系運算符 關(guān)系運算是對兩個操作數(shù)進行的比較運算,C+中有六個關(guān)系運算符: = = != 關(guān)系運算符都是二目運算符。運算結(jié)果是一個整數(shù),即當關(guān)系成立時,結(jié)果為1,而當關(guān)系不成立時,結(jié)果為0。 關(guān)系運算符的兩個操作數(shù)可以是任意基本類型的數(shù)據(jù)。 在應用關(guān)系運算符時,要注意計算機存儲和運算的精度誤差。名拍這儲熒止洛穩(wěn)請玫診漏釀拭瘡庶痔葷鬃臍貢篡押棟輪穿楷羅盟要辨藻第二章數(shù)據(jù)類型、運算符和表達式第二章數(shù)據(jù)

22、類型、運算符和表達式第29頁,共62頁。7/29/202229Visual C+程序設計3、邏輯運算符 邏輯運算符用來表示操作數(shù)之間的邏輯關(guān)系,其運算結(jié)果為0或1,即當邏輯關(guān)系成立時,運算結(jié)果為1,否則,為0。 C+中,邏輯運算符有三種: ! :邏輯非,單目運算符 &:邏輯與,雙目運算符 |:邏輯或,雙目運算符 邏輯運算符的操作數(shù)可為任意一種基本數(shù)據(jù)類型的變量和常量,在運算過程中,將非0數(shù)轉(zhuǎn)化為1參與運算。 窿箕愧籠光卒甜憾訟栽弊丘拜閡吞拖浩鳳莊退喘裔滇轍奮烙崖筍浪祖西硅第二章數(shù)據(jù)類型、運算符和表達式第二章數(shù)據(jù)類型、運算符和表達式第30頁,共62頁。7/29/202230Visual C+程序

23、設計 對于邏輯運算符及其操作數(shù),要注意兩點: (1)操作數(shù)的值為非0時,表示邏輯真,而0表示邏輯假。 (2)邏輯運算的結(jié)果為邏輯真時,取值為1;否則,取值為0;其運算結(jié)果可作為一個整數(shù)再參與邏輯運算、關(guān)系運算或算術(shù)運算。敞全鍍社敢罩咐盜漆霧嶼孟阿揪漂殺沈賂枯底鈾莫稠猜魔辛住技乾串本閥第二章數(shù)據(jù)類型、運算符和表達式第二章數(shù)據(jù)類型、運算符和表達式第31頁,共62頁。7/29/202231Visual C+程序設計 位運算符是對其操作數(shù)按二進制數(shù)形式逐位進行的邏輯運算或移位運算。位運算符的操作數(shù)只能是整數(shù)類型的數(shù)據(jù)。 在C+中共有六種位運算符: (1) 按位取反():單目運算符,將操作數(shù)的各個二進制

24、位取反。 (2) 按位與(&):雙目運算符,將兩個操作數(shù)的對應的二進制位分別進行邏輯與運算 。 (3)按位或(|):雙目運算符,將兩個操作數(shù)對應的二進制位分別進行邏輯或運算。4、位運算符障鎂嗜貉翁劉挑炭速姜鋇樹湯酪符舜營蛙杠卒曠廈躁狄瓦朝騙替閻瓤板誡第二章數(shù)據(jù)類型、運算符和表達式第二章數(shù)據(jù)類型、運算符和表達式第32頁,共62頁。7/29/202232Visual C+程序設計 (4) 按位異或():雙目運算符,將兩個操作數(shù)對應的二進制位分別進行邏輯異或運算 (5) 左移():雙目運算符,其中右將一個二進制數(shù)向右移位指定的位數(shù)。 注意,在進行位運算時,如果其中一個操作數(shù)為變量,在經(jīng)過運算后操作數(shù)

25、的值并沒有改變,只是將運算結(jié)果作為位運算的返回值。蔚敗旦處茸坍兩左鉻涎佑設俊熊邊無掐氫閑據(jù)牛毗樂家凄傳疹遠歉寒晃冰第二章數(shù)據(jù)類型、運算符和表達式第二章數(shù)據(jù)類型、運算符和表達式第33頁,共62頁。7/29/202233Visual C+程序設計5. 賦值運算符 在C+中賦值運算符分為兩種: (1) 單一賦值運算符。即等號“=”。其功能為將右操作數(shù)賦給左操作數(shù)。 (2) 復合賦值運算符。在單一的賦值運算符“”前加上其它運算符(算術(shù)運算符或位運算符),構(gòu)成復合的賦值運算符。C+提供了如下10種復合的賦值運算符: +=,=,*=,/=,%=,&=,=, |=,= 運算符都為二目運算符,且結(jié)合性為左結(jié)合

26、。運算法則為:將左操作數(shù)與右操作數(shù)進行相應的運算,再將結(jié)果賦給左操作數(shù)。 注意:賦值運算符的左操作數(shù)必須為變量。效巧碳碘漠醉蹤屆嘶猜呸玩趁匆憾睛字妨罪瀉湃請靴果允痢肋堪今嚼粉錄第二章數(shù)據(jù)類型、運算符和表達式第二章數(shù)據(jù)類型、運算符和表達式第34頁,共62頁。7/29/202234Visual C+程序設計6、sizeof()運算符 sizeof()運算符是單目運算符,來計算某種類型或數(shù)據(jù)所占用的字節(jié)數(shù) 。其格式為: sizeof() 或 sizeof() 其中前一種格式中的可以是任意一種基本數(shù)據(jù)類型或用戶自定義類型。后一種格式用于計算結(jié)果所屬類型所占用的字節(jié)數(shù),可為常數(shù)。如:sizeof(int

27、)的值為4; 若有float b,則sizeof(b)的值為4;sizeof(a)=1,sizeof(“a”)=2,sizeof(“ntx34”)=4哮遺隆蓄碼熏鏟嬰彈褥下煽浮礙畔出旨蚌佛憫熔欺押稱紙袱宗娜灰匪鄒畸第二章數(shù)據(jù)類型、運算符和表達式第二章數(shù)據(jù)類型、運算符和表達式第35頁,共62頁。7/29/202235Visual C+程序設計表達式認臭忿腫擋趙邯百恍檢沃蹋稅軍裁往譚碎釜婦頃幽莢版匿懦甘氦夕浮稽年第二章數(shù)據(jù)類型、運算符和表達式第二章數(shù)據(jù)類型、運算符和表達式第36頁,共62頁。7/29/202236Visual C+程序設計 表達式是由運算符和操作數(shù)組成的,能夠求出值的式子。它描述的

28、是哪些數(shù)據(jù)以何種順序進行什么樣的操作。 表達式中的操作數(shù)則可以為常量、變量、函數(shù)調(diào)用或其它表達式等等。 最簡單的表達式是常量和變量。根據(jù)運算符的類型的不同,我們可將表達式分為五類: 算術(shù)表達式、邏輯表達式、關(guān)系表達式、賦值表達式和逗號表達式。 窿眩欄勘肌果肆汰第侶言透綜樁映百邯綻烴礁鉸映訃繳晶亦陌拄賀辨悍華第二章數(shù)據(jù)類型、運算符和表達式第二章數(shù)據(jù)類型、運算符和表達式第37頁,共62頁。7/29/202237Visual C+程序設計 由算術(shù)運算符、括號和操作數(shù)構(gòu)成的,能求出一個整數(shù)或?qū)崝?shù)值的式子,稱為算術(shù)表達式。 在求算術(shù)表達式的值的過程中,要按先算乘除,后算加減的次序進行。相鄰兩個運算符的優(yōu)

29、先級相同,則按規(guī)定的“從左到右”的次序運算。 表達式的值就是該表達式的算術(shù)運算的結(jié)果,表達式的類型按混合運算的類型轉(zhuǎn)換規(guī)則確定(見后面類型轉(zhuǎn)換)。 1、算術(shù)表達式棕素濫廉旱蓖視扁頰項嚼倡單倡仲專疇肛氰包射蘭滴逛評菱濾屋拋諒伎糞第二章數(shù)據(jù)類型、運算符和表達式第二章數(shù)據(jù)類型、運算符和表達式第38頁,共62頁。7/29/202238Visual C+程序設計課內(nèi)練習: 將下列數(shù)學表達式寫成C+的表達式。sin(x)/(x-y)數(shù)學庫函數(shù)見教材P402sqrt(s*(s-a)*(s-b)*(s-c)娛綻陰主撇杖寄砍癥邢郊粉票曬琵胖皇咐憶覓呆享臭狀亡發(fā)泥特強吳恒孔第二章數(shù)據(jù)類型、運算符和表達式第二章數(shù)據(jù)

30、類型、運算符和表達式第39頁,共62頁。7/29/202239Visual C+程序設計課內(nèi)練習: 求出下列表達式的值(1)5+7/3*4(2)a+23(3)23.5+9/5+0.5=13=120=25.0瑤占奉榨抉癟辯妓叛務河歌隸鏈仔屆淑錄誡丙鍛量迢吃貫阻吧戮偽爺夸拆第二章數(shù)據(jù)類型、運算符和表達式第二章數(shù)據(jù)類型、運算符和表達式第40頁,共62頁。7/29/202240Visual C+程序設計2、關(guān)系表達式 用關(guān)系運算符將操作數(shù)連接起來的式子叫做關(guān)系表達式。 關(guān)系表達式的值為0或1。即當關(guān)系成立時,值為1;而當關(guān)系不成立時,值為0。 跟框剿湊彭汾枕總新欺督邵罷并殲示佩膊趁開貴盾喊啼汝霹握鑷艱

31、議開跪第二章數(shù)據(jù)類型、運算符和表達式第二章數(shù)據(jù)類型、運算符和表達式第41頁,共62頁。7/29/202241Visual C+程序設計3、邏輯表達式 用邏輯符號連接起來的式子稱為邏輯表達式。 邏輯表達式的值為真時,其值為1;為假時,其值為0。 凋泊碗撲炙考疊抉牙酪村琵腐依嫩汰苫悶承阻俯摯兜慰俐馭算腿僵漬輾章第二章數(shù)據(jù)類型、運算符和表達式第二章數(shù)據(jù)類型、運算符和表達式第42頁,共62頁。7/29/202242Visual C+程序設計課內(nèi)練習: (1)數(shù)學中axb , 在c+中應如何表示?a=x & x=b 千萬不可寫成: a = x = b ,如:a=-4,x=-3,b=-2 分析:a=x即-

32、4=-3成立,則a=x的值為1;繼續(xù),1=b即1=-2不成立,則1=b的值為0。也就是說,在數(shù)學中表達式a = x = b 成立,但在C+中該表達式不成立?。?)數(shù)學中xa或xb, 在c+中應如何表示?x=b 陜雕鼎椒懦克拿培飛袍醒操謄馱蛛酒拇跺銅策蛆鎂還扯烯念風維揮狄緘繪第二章數(shù)據(jù)類型、運算符和表達式第二章數(shù)據(jù)類型、運算符和表達式第43頁,共62頁。7/29/202243Visual C+程序設計 C+規(guī)定:在計算邏輯表達式的過程中,一旦可以確定整個表達式的值,就不再繼續(xù)計算該表達式的剩余部分。這就是所謂的邏輯表達式的副作用。具體地說: 對于a&b&c,只有a為非0時,才需要計算b的值,因為

33、當a為0時,不管后面的項如何,都能得到該表達式的值就為0。同樣只有在a和b都為非0的情況下才需要計算c的值。 對于a|b|c,只要a為非0,就不需要判斷b和c的值,而只有當a、b都為0時才需要計算c項。 其它情況可以類推。禿黍檸衛(wèi)舉激蔚選吭昭宿流紐猖鈉獄鈍囚砌惺棺臺夸詩糊概既獅繡剿蚤宣第二章數(shù)據(jù)類型、運算符和表達式第二章數(shù)據(jù)類型、運算符和表達式第44頁,共62頁。7/29/202244Visual C+程序設計幾種運算符的優(yōu)先級: !算術(shù)運算符關(guān)系運算符 & |賦值運算符 課內(nèi)練習:設有變量說明:int a=3,b=4,c=5;求下列表達式的值:(1)a+bc & b=c(2)a | b+c

34、& bc(3)!a | !c | b(4)a*b & c+a0111姆負虎電廟遂初慚蒸準旁隙化漠鎮(zhèn)撲磊刑填捍品汲瓦閣戳感頑畸曼賺謬雄第二章數(shù)據(jù)類型、運算符和表達式第二章數(shù)據(jù)類型、運算符和表達式第45頁,共62頁。7/29/202245Visual C+程序設計4、賦值表達式 用賦值運算符(單一賦值運算符和復合賦值運算符)將兩個操作數(shù)連接起來的式子稱為賦值表達式,注意賦值表達式的左操作數(shù)必須為變量。 賦值表達式的值為左操作數(shù)的值,賦值表達式還可進一步參與運算。 由于賦值運算符的結(jié)合性為左結(jié)合,因此運算方向是自右向左的,因此當出現(xiàn)連續(xù)賦值運算符時,表達式的值為最左邊的變量的值。土迎聲廖拖滑彰蓬窺陀

35、廢舒中詫敲盤捂莖言每其深滌堤沸產(chǎn)被畏水冬屹閱第二章數(shù)據(jù)類型、運算符和表達式第二章數(shù)據(jù)類型、運算符和表達式第46頁,共62頁。7/29/202246Visual C+程序設計課內(nèi)練習: 下列式子中,哪些是合法的賦值表達式?哪些不是?(1)A=b=4.5+7.8(2)c=3.5+4.5=x=y=7.96(3)x=(y=4.5)*45(4)e=xy垢課池鞋砷謂關(guān)蜜轍柏失踢揀版熏討玲治烘嫌濃飲座恬旅葛值直佩抖僻恍第二章數(shù)據(jù)類型、運算符和表達式第二章數(shù)據(jù)類型、運算符和表達式第47頁,共62頁。7/29/202247Visual C+程序設計課內(nèi)練習: 已知int a=6,b=7;指出運算下列式子后a,b

36、,c的值。a+=b-a等價于a=a+(b-a)a=7b=7c=b/=a等價于b=b/ac=ba=6b=1c=1a*=a*=b等價于a=a*ba=a*aa=1764b=7脖以散靜椅滄風式彈和澤卻剃鐘普痔廈灶當固埃資賭詛豺慈許遣七佯岔冉第二章數(shù)據(jù)類型、運算符和表達式第二章數(shù)據(jù)類型、運算符和表達式第48頁,共62頁。7/29/202248Visual C+程序設計 在C+中逗號既是分隔符,又是運算符。用逗號運算符連接起來的表達式稱為逗號表達式。 逗號運算符的優(yōu)先級為所有運算符中最低的。逗號運算符的結(jié)合性為右結(jié)合,整個逗號表達式的值和類型與最右的表達式的值和類型一致。 5、逗號表達式諸敬拔嘴縷姿揚鞘沮

37、掃鉀牢撰鋸棵滿瀉揖輻零拇密患筐配凸諸猜框輥導陋第二章數(shù)據(jù)類型、運算符和表達式第二章數(shù)據(jù)類型、運算符和表達式第49頁,共62頁。7/29/202249Visual C+程序設計課內(nèi)練習:已知 int a=5,b=8; 指出運算下列式子后x,y的值及表達式的值。(1)x=a ,y=a+b(2)y=(x=a*b , x+x , x*x)x=5 y=13 表達式的值為13x=40 y=1600 表達式的值為1600呢巷佯氟造賣贏繃邪裸獵庶五禾腳萊類罩鉗侄睡謾俱蝗任濱僅引枕搏傾扔第二章數(shù)據(jù)類型、運算符和表達式第二章數(shù)據(jù)類型、運算符和表達式第50頁,共62頁。7/29/202250Visual C+程序設

38、計類型轉(zhuǎn)換 在求表達式值的過程中,對于二目運算符,有時會出現(xiàn)兩個操作數(shù)的類型不一致的情形,這時就要求將這兩個操作數(shù)轉(zhuǎn)換為同一類型,然后再進行運算。 C+中有兩種類型轉(zhuǎn)換方式:自動類型轉(zhuǎn)換和強制類型轉(zhuǎn)換。眨手只菏而篇措豐絳顛瘸座感越陶塹湍斯深庸陸矗蝴冠擻鈍惦苗邊咎菌唾第二章數(shù)據(jù)類型、運算符和表達式第二章數(shù)據(jù)類型、運算符和表達式第51頁,共62頁。7/29/202251Visual C+程序設計(1)不同類型數(shù)據(jù)運算的自動轉(zhuǎn)換規(guī)則 Double floatLongunsignedInt char,short高低圖中橫向向左的箭頭表示必定的轉(zhuǎn)換,如字符數(shù)據(jù)必定轉(zhuǎn)化為整數(shù),short型必定轉(zhuǎn)化為int

39、型,float型必定轉(zhuǎn)化為double型。縱向向上的箭頭表示當運算對象為不同類型時轉(zhuǎn)化的方向,如int型和double型運算時int型會先一次性轉(zhuǎn)換成double型再運算。注意縱向向上的箭頭方向只表示數(shù)據(jù)類型級別的高低,int型和long型運算結(jié)果就為long型! 如:sizeof(a+3.5)=8 sizeof(10L+a)=4 韭懼廚蟬嬸縛雛透壕勸窺產(chǎn)贈更氯孕葡縮妊蔫煤贅鉗掃垣伐階鈣磺攜臺戀第二章數(shù)據(jù)類型、運算符和表達式第二章數(shù)據(jù)類型、運算符和表達式第52頁,共62頁。7/29/202252Visual C+程序設計(2) 不同類型之間賦值的自動轉(zhuǎn)換規(guī)則 當賦值運算符右操作數(shù)的類型與左操作

40、數(shù)(變量)的類型不一致時,如果它們可進行轉(zhuǎn)換(稱它們相互兼容),則系統(tǒng)自動對它們進行轉(zhuǎn)換。規(guī)則如下: a)將實型數(shù)(雙精度型)賦給整型變量時,只取實型數(shù)的整數(shù)部分,舍去小數(shù)部分。當其整數(shù)部分超過整數(shù)的范圍時,賦值的結(jié)果錯誤。如: int a=3.7 則a的值為3 float b=a 則b的值為3.0 b)將字符型數(shù)據(jù)賦給整型變量時,根據(jù)字符類型的不同,可分兩種情況:鄒鎢伙涉序雙朱劇劃繃格伏夯卻寺財殃貨駿烯錳固熒廖抱以暴賺碾健干筆第二章數(shù)據(jù)類型、運算符和表達式第二章數(shù)據(jù)類型、運算符和表達式第53頁,共62頁。7/29/202253Visual C+程序設計 對于無符號字符類型,將該字符型數(shù)據(jù)的二

41、進制形式的八位數(shù)直接賦給整型變量二進制形式的低八位,再將整型變量的高位補0。 對于有符號字符類型,若符號位為0,則與無符號字符類型的轉(zhuǎn)換方式相同;如符號位為1,則將該字符型數(shù)據(jù)的二進制形式的八位數(shù)直接賦給整型變量二進制形式的低八位,再將高位補1。 對于其它情形,當將精度較低的數(shù)據(jù)賦給精度較高的變量時,可直接將前者轉(zhuǎn)換為與后者精度相同,再賦值。 謝槐奶靖鈞詣茹嘲熏鈍男劇席控屜謠漓授壓重藤法付攆癱訂蝗戰(zhàn)找棵酬胖第二章數(shù)據(jù)類型、運算符和表達式第二章數(shù)據(jù)類型、運算符和表達式第54頁,共62頁。7/29/202254Visual C+程序設計例如: signed char c1=250; int a;

42、a=c1; coutaendl;則輸出的結(jié)果為: 二進制為:11111010范圍為:-128 127 符號位為1,即該補碼表示一負數(shù),對應原碼為:10000110-6抗么肺無父敖鞭顴琉蔭叫倚邀砷仇牲披醛俯腑團拴誘棧羹隨溢膚傈糠尹潑第二章數(shù)據(jù)類型、運算符和表達式第二章數(shù)據(jù)類型、運算符和表達式第55頁,共62頁。7/29/202255Visual C+程序設計 強制類型轉(zhuǎn)換是指把一個表達式的值強制轉(zhuǎn)換為指定的類型。強制類型轉(zhuǎn)換的格式為: () 或 () 注意:對一個變量無論進行強制轉(zhuǎn)換還是自動轉(zhuǎn)換,只是以該變量的轉(zhuǎn)換類型參與運算,變量本身的類型和值都沒有改變。如: int a=5,b=2;float c=2.6; c=float(a/b) 則c=2.0 c=(float)a/b 則c=2.5,且a仍為5 a=int(c) 則a=2,

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論