版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
第章數(shù)據(jù)類型、運算符和表達式韭仲莎糧逢墳雌風端韓忙際泄露虞矗史把墊剔殉選琳童搽崗嗆郊慚廈順吭第二章數(shù)據(jù)類型、運算符和表達式第二章數(shù)據(jù)類型、運算符和表達式12/21/20221VisualC++程序設計第章數(shù)據(jù)類型、運算符和表達式韭仲莎糧逢墳雌風端韓忙際泄露
在C++語言中,已有特殊含義和用途的英文單詞稱為關鍵字或保留字,它們在程序中將不另作它用。
C++中的所有關鍵字如教材P10-11所示。共有48個,其中有5個不適用于VC++(表2-2)。另一方面,在VC++中有19個專用關鍵字不適用于C++(以雙下劃線開頭)。關鍵字熔螟咒溶畦贓繕筐赦橙泌妊繁怒鴛繁晃磕飄響盞蝦渴漚船殘馭印胞碗吠滔第二章數(shù)據(jù)類型、運算符和表達式第二章數(shù)據(jù)類型、運算符和表達式12/21/20222VisualC++程序設計在C++語言中,已有特殊含義和用途的英文單詞稱為關鍵字或保標識符、標點符號和分割符以字母或下劃線開始的字母、數(shù)字以及下劃線組成的字符序列稱為標識符。在程序設計中標識符可用作變量名、常量名、函數(shù)名、用戶自定義的數(shù)據(jù)類型名等。棋井雹幌約沒欣寸啥半搬悍悄舉俊人慕訴材邯顏熔期糞選碟瞞敏顱胚樞初第二章數(shù)據(jù)類型、運算符和表達式第二章數(shù)據(jù)類型、運算符和表達式12/21/20223VisualC++程序設計標識符、標點符號和分割符以字母或下劃線開始的字母、數(shù)字以及下關于標識符的幾點說明:a.標識符的有效長度為1~247個字符。當標識符的長度超過247個字符時,超過限度的字符無效。b.標識符區(qū)分大小寫。c.標識符的命名方法。匈牙利命名法;采用表示標識符含義的英文單詞或漢語拼音。d.標識符不能為關鍵字。勝窩傷斯囑賬恥漱豐聞疫自徐拂沿擄裸找堰迸剪籽證酗掄曼糟薄輩田鴻聊第二章數(shù)據(jù)類型、運算符和表達式第二章數(shù)據(jù)類型、運算符和表達式12/21/20224VisualC++程序設計關于標識符的幾點說明:勝窩傷斯囑賬恥漱豐聞疫自徐拂沿擄裸找堰
課內(nèi)練習
指出下列用戶自定義的標識符中哪些是合法的,哪些是非法的?為什么?abcEnglish2xyx-yifElse√√關鍵字√E大寫,非關鍵字。注意:c++中標識符區(qū)分大小寫。b(3)’def’Chine_bbb3yAbsFloatfloat√√√另顆途樁惕都閏睛下刊盒虐涎損洪鹿酞孝古齡附袖筋澤沏報嚴所憾榷券峪第二章數(shù)據(jù)類型、運算符和表達式第二章數(shù)據(jù)類型、運算符和表達式12/21/20225VisualC++程序設計課內(nèi)練習指出下列用戶自定義的標識符中哪些是合C++中的標點符號共有9個: #()
{},
:;…
在程序中,每個標點符號各有其不同的作用。
分隔符的作用是將程序中的詞法符號分隔開來。C++中的分隔符有:運算符、空格、標點符號、回車鍵和Tab鍵等?,斪滤畠渡妙潙Z汝奧潞次硅戍棉執(zhí)嫡綸巢踩悼礫皆騷截趨仰集狐哦嚏上粕第二章數(shù)據(jù)類型、運算符和表達式第二章數(shù)據(jù)類型、運算符和表達式12/21/20226VisualC++程序設計C++中的標點符號共有9個:瑪茁水兌擅顫慫汝奧潞次硅基本數(shù)據(jù)類型描述一個數(shù)據(jù)需要兩方面的信息:一是數(shù)據(jù)占用的存儲空間的大小,二是該數(shù)據(jù)允許執(zhí)行的操作或運算。C++中數(shù)據(jù)類型分為兩大類:基本數(shù)據(jù)類型和導出數(shù)據(jù)類型。寡魔救妥脯冶垛簇弱長慷壕精暑膛瑣眶極聘汞犯吮戶酗船電酪并撼談析翌第二章數(shù)據(jù)類型、運算符和表達式第二章數(shù)據(jù)類型、運算符和表達式12/21/20227VisualC++程序設計基本數(shù)據(jù)類型描述一個數(shù)據(jù)需要兩方面的信息:一是數(shù)據(jù)字符型整型實型(單精度型)雙精度型無值型數(shù)組類型指針類型結(jié)構(gòu)體類型共同體類型枚舉類型數(shù)據(jù)類型基本類型構(gòu)造類型C++中的數(shù)據(jù)類型拾則窟壬拓杭訃追目定列療魚綸致宗屑膠嬸紋烽搖哎茶撓衣苯窗脫軸浮門第二章數(shù)據(jù)類型、運算符和表達式第二章數(shù)據(jù)類型、運算符和表達式12/21/20228VisualC++程序設計字符型數(shù)組類型數(shù)據(jù)類型基本類型構(gòu)造類型C++中的數(shù)據(jù)類型拾
可以在這些基本數(shù)據(jù)類型前加上以下幾個修飾詞而形成一種新的基本數(shù)據(jù)類型:有符號(signed)、無符號(unsigned)、長(long)、短(short)。以上四個修飾詞來修飾int時,關鍵字int可以省略。無修飾詞的int和char,編譯程序認為是有符號的。請同學們熟記教材P13表2-4。聾蝦俊甭樹熏濃被活套壺民鴨頤琵炕礦涂徽倆酬誠所貌渡柱芳蒲蠻聯(lián)掇嗅第二章數(shù)據(jù)類型、運算符和表達式第二章數(shù)據(jù)類型、運算符和表達式12/21/20229VisualC++程序設計可以在這些基本數(shù)據(jù)類型前加上以下幾個修飾詞而形成一常量在程序的執(zhí)行過程中,值保持不變(也不能被改變)的量稱為常量。
1、字面常量:
a.整型常量:十進制常量:第一位為1~9的任意整數(shù)(由0~9之間的整數(shù)構(gòu)成),比如123,-45八進制常量:以0開頭的整數(shù)(由0~7之間的整數(shù)構(gòu)成),比如043,071耪娃姐版聚猛選鄂羞斧彼暢即依戳帳制肢奉閹賴普歇侍斡晃落獅螺經(jīng)燕齲第二章數(shù)據(jù)類型、運算符和表達式第二章數(shù)據(jù)類型、運算符和表達式12/21/202210VisualC++程序設計常量在程序的執(zhí)行過程中,值保持不變(也不能被改變)的十六進制常量:以0X或0x開頭的整數(shù)(由0~9之間的整數(shù)以及A~F之間的字母構(gòu)成),比如,0X32,0xA3F長整型常量:以L或l結(jié)尾的整數(shù),比如:123L,824l無符號整形常量:以U或u結(jié)尾的整數(shù),比如:123u,824U
摔乃寶她宴遂佑淮牌譜菜錐汪試免如扔娛塹楞呀抒癟輻井鞘搐侄補坍喇默第二章數(shù)據(jù)類型、運算符和表達式第二章數(shù)據(jù)類型、運算符和表達式12/21/202211VisualC++程序設計十六進制常量:以0X或0x開頭的整數(shù)(由0~9之間
b.實型常量:十進制小數(shù)形式:比如,1.23、.23、1.指數(shù)形式:格式為<小數(shù)>E(或e)<指數(shù)>,比如,2e3表示2000,2E-4表示0.0002
注意:E前必須有數(shù)字,E后指數(shù)部分必須是整數(shù)。蛤鄧例傘頌姚魂伍肪獸梳創(chuàng)酥徘句挨述筆希若妹哺衍喜貝卵瞇匆網(wǎng)物戀甥第二章數(shù)據(jù)類型、運算符和表達式第二章數(shù)據(jù)類型、運算符和表達式12/21/202212VisualC++程序設計b.實型常量:蛤鄧例傘頌姚魂伍肪獸梳創(chuàng)酥徘句挨述筆希若妹
c.字符型常量:用單引號'
括起來的單個字符叫字符型常量。
字符常量在計算機內(nèi)是采用該字符的ASCII編碼值來表示的,其數(shù)據(jù)類型為char。
注意兩個字符:'和
\,不能直接表示為''','\',而必須采用轉(zhuǎn)義序列方法。
爹妨市染嘴頑匣閣隋房窗芍戚炭幕尖杏譬蜀厚嘔鹿嫉陵差鑼直包架微匣銹第二章數(shù)據(jù)類型、運算符和表達式第二章數(shù)據(jù)類型、運算符和表達式12/21/202213VisualC++程序設計c.字符型常量:爹妨市染嘴頑匣閣隋房窗芍戚炭幕尖杏
轉(zhuǎn)義序列法:反斜杠+字母:表示控制字符,比如'\a'表示響鈴,'\n'表示回車符。反斜杠+特殊字符(',\),表示該字符。比如,
'\\'
表示反斜杠“\”,
'
\''
表示單引號“'”。
反斜杠+整型常量:此時整型常量必須是一個八進制(以0開頭)或十六進制數(shù)(以0X或0x或X或x開頭,但在VC++開發(fā)環(huán)境中只能以x開頭!),其取值通常在0~255之間,此時,如果在整數(shù)之前沒有0,表示八進制。比如:'\141'、'\X61'都與'a'等價。如要表示字符常量雙引號'',可采用或不采用轉(zhuǎn)義序列法,即''''和'\'''均可。扭指態(tài)葛驢項堂郝根會眼哇餒希掣哺媽毯翰纏融篙砍壺廄旭艾吟伎瞳匠未第二章數(shù)據(jù)類型、運算符和表達式第二章數(shù)據(jù)類型、運算符和表達式12/21/202214VisualC++程序設計轉(zhuǎn)義序列法:扭指態(tài)葛驢項堂郝根會眼哇餒希掣哺媽毯翰纏d.字符串常量:
用雙引號"括起來的若干個字符。
當雙引號(")或反斜杠(\)作為字符串中的一個字符時,必須采用轉(zhuǎn)義序列法;而單引號(')出現(xiàn)在字符串中時,可采用或不采用轉(zhuǎn)義序列法。字符串常量和字符常量的區(qū)別:
(1)在每一個字符串常量的末尾,存儲時都要存放一個“\0”,表示字符串的結(jié)束符。(2)字符串常量不能直接運用一些運算,比如算術運算、比較運算等,而字符常量可以。涸絕漱常伊車擴箍今樞鏈沽嶼柱龍惹癬款牙幻緘總鞭拇睬咸農(nóng)違肌別悲趨第二章數(shù)據(jù)類型、運算符和表達式第二章數(shù)據(jù)類型、運算符和表達式12/21/202215VisualC++程序設計d.字符串常量:涸絕漱常伊車擴箍今樞鏈沽嶼柱龍惹癬
2、標識符常量
用標識符表示的常量??捎脙煞N方法定義標識符常量:
(1)利用編譯預處理指令。
利用關鍵字define,以如下形式定義常量: #definePI3.14159
(2)利用常量說明符const。比如:
constI=2;注意,標識符常量一經(jīng)定義,在其后繼的程序中就不能改變其值。襪九倘摸墻具鋼擠葷遙懂予豪娘簧槳撫漳滑霓針傭桐焰遂蘋輝嗚餡的贊坍第二章數(shù)據(jù)類型、運算符和表達式第二章數(shù)據(jù)類型、運算符和表達式12/21/202216VisualC++程序設計2、標識符常量襪九倘摸墻具鋼擠葷遙懂予豪娘簧槳撫漳滑課內(nèi)練習
下列常量的表示在c++中是否合法?若不合法,指出原因;若合法,指出常量的類型。3276735u1.25e3.43L0.0086e-32’\87’”ComputerSystem”整型無符號整型長整型實型字符串”a”’a’’\96\45’-0+0.5-.567字符串字符整型整型實型實型薦茄猜星臟拯祟邀瓊徽湍戀莉廷未處吏廊蠱諧盂動棋菏哭呻揖幅寐創(chuàng)褥攝第二章數(shù)據(jù)類型、運算符和表達式第二章數(shù)據(jù)類型、運算符和表達式12/21/202217VisualC++程序設計課內(nèi)練習
下列常量的表示在c++中是否合法?課內(nèi)練習
下列符號中哪些表示字符?哪些表示字符串?哪些即不表示字符也不表示字符串?’a’’0x66’”a”China”中國””8.42”’\0x33’字符’\0x66’字符串”China”字符串字符串字符”\n\t\0x34”56.34’\r’’\\’’\8.34’”\0x33”字符串字符字符字符串啟澎狼壇癌詩負樞燃痊墻藩送蒸悔簽資沁匪炳丈祥嫂痛松強費島聳殆罵云第二章數(shù)據(jù)類型、運算符和表達式第二章數(shù)據(jù)類型、運算符和表達式12/21/202218VisualC++程序設計課內(nèi)練習
下列符號中哪些表示字符?哪些表示字變量在程序的執(zhí)行過程中,可以改變其值的量稱為變量。根據(jù)其取值不同,變量可分為不同類型的變量:整型變量、實型變量、字符型變量、構(gòu)造型變量、指針型變量等。對于任一變量,編譯程序要為其分配若干個字節(jié)(連續(xù)的)的內(nèi)存單元,以便保存該變量的值,分配內(nèi)存的大小由變量的類型決定。不管是什么類型的變量,通常是變量的說明在前,變量的使用在后。
殖爐滲職旱茨狠北拈滴鷹愚祭沁賺突崇閡舌寵雅抱聊疆曲噎牡瑚檢呀炯番第二章數(shù)據(jù)類型、運算符和表達式第二章數(shù)據(jù)類型、運算符和表達式12/21/202219VisualC++程序設計變量在程序的執(zhí)行過程中,可以改變其值的量稱為變量。根變量說明說明變量的一般格式為:《storage》<type><var_name1>《,<var_name2>,…..,<var_namen>》;
在C++中,變量說明是作為一條語句來處理的,稱為變量說明語句。變量說明(P17)可以出現(xiàn)在程序語句可出現(xiàn)的任何位置。同一個變量只能作一次定義性說明。給一個變量取一個新值時,稱為對變量的賦值;取一個變量的值時,稱為對變量引用;罵恍啃蓬拭上辦給濁長黑悟昧割央勒個芹籌圍昆廬情友泅檻樊蔭采飽間罪第二章數(shù)據(jù)類型、運算符和表達式第二章數(shù)據(jù)類型、運算符和表達式12/21/202220VisualC++程序設計變量說明說明變量的一般格式為:罵恍啃蓬拭上辦給濁長黑課內(nèi)練習
下列變量說明中,哪些是不正確的?為什么?(1)intm,n,x,y;floatx,z;(2)charc1,c2;floata,b,c1;呢寸恕茂痕樊娜淪玩蛤骯油驕宙建奴牌害鑄泥帳艙燼位紫鎬嗓扛宿爛辮脅第二章數(shù)據(jù)類型、運算符和表達式第二章數(shù)據(jù)類型、運算符和表達式12/21/202221VisualC++程序設計課內(nèi)練習
下列變量說明中,哪些是不正確的?為
變量的值可以通過賦值語句而得到改變。比如,假設有一個整型變量a,則通過如下語句就可以改變a的值: a=2;當引用某個變量時,該變量必須有一個唯一確定的值。首次給變量賦值稱為對變量賦初值,或變量的初始化??梢杂萌N方法給變量賦初值:(1)在變量說明時,直接賦初值;(inta=3;)(2)使用賦值語句賦初值;(inta;a=3;)(3)通過輸入流cin等其它方法。(inta;cin>>a;)變量的賦值與初始化支滑綱尋耍瘸鈍恒菱鍋孟晶辨七秀吾滄費瞄件伯貢泥聳毒融忙刻檀程輩軍第二章數(shù)據(jù)類型、運算符和表達式第二章數(shù)據(jù)類型、運算符和表達式12/21/202222VisualC++程序設計變量的值可以通過賦值語句而得到改變。比如,假設運算符和表達式壺底凌高糠依撼潑爆奈窗浮蜂謝孫煮瞎宰奴啄廚阜乏感輸麗蓑藥同冷爭籽第二章數(shù)據(jù)類型、運算符和表達式第二章數(shù)據(jù)類型、運算符和表達式12/21/202223VisualC++程序設計運算符和表達式壺底凌高糠依撼潑爆奈窗浮蜂謝孫煮瞎宰奴啄廚阜乏在C++中,對數(shù)據(jù)(變量或常量)進行運算或處理是通過運算符進行的。所謂運算符就是表示某種特定運算形式簡單的記號。參與運算的對象稱為操作數(shù)。數(shù)據(jù)與運算符一起構(gòu)成表達式,它描述對哪些數(shù)據(jù)、以何種順序進行什么樣的操作?;B(yǎng)但勘整蝎慕賽昆扶款儀毯擄粥殖拇貫酉險免墮技杠肌搗陷人慈格第二章數(shù)據(jù)類型、運算符和表達式第二章數(shù)據(jù)類型、運算符和表達式12/21/202224VisualC++程序設計在C++中,對數(shù)據(jù)(變量或常量)進行運算或處理是通過要正確掌握運算符,必須要注意以下幾點:1.每個運算符的功能和作用
每一個運算符都有特定的含義,但也要注意有的運算符相同,卻具有不同的含義。
2.運算符與操作數(shù)的關系(1)運算符的操作數(shù)的個數(shù)
只有一個操作數(shù)的運算符,稱為單目(一元)運算符;具有兩個操作數(shù)的運算符稱為雙目(二元)運算符;只有一個三目運算符:?:(2)操作數(shù)的類型識負擺冉躇纏很零栓慈岔樣陪莉汝莆圾愿麥吳瑣頗沾樁鉻悉繭橡炕圖告思第二章數(shù)據(jù)類型、運算符和表達式第二章數(shù)據(jù)類型、運算符和表達式12/21/202225VisualC++程序設計要正確掌握運算符,必須要注意以下幾點:識負擺冉躇纏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ù)類型、運算符和表達式12/21/202226VisualC++程序設計3.運算的優(yōu)先級(見教材P18表2.6)矩煽筒基本運算符
基本運算符是指完成算術運算、關系運算、邏輯運算、位運算的運算符。偵政鑼熄演保瀉裂銘蚤砸業(yè)織耘絡塑襟指俗臨任瓷趾卑瓦訪大掌斟本紋權第二章數(shù)據(jù)類型、運算符和表達式第二章數(shù)據(jù)類型、運算符和表達式12/21/202227VisualC++程序設計基本運算符基本運算符是指完成算術運算、關系運算、邏單目運算符:+-(正負號)雙目運算符:+-*/%
算術運算符都是右結(jié)合的,它們之間的優(yōu)先級與數(shù)學中一致。
兩個整數(shù)的運算結(jié)果還是整數(shù)。如:
5/2=2而5.0/2=2.5
運算符%(求余數(shù))的操作數(shù)只能是整型或字符型。1、算術運算符智鎖徊氧目度郎衡寸熟瓶奶兆見片汛嬰謎仟以呀譯萄孜美貳碗跑擁奏域腳第二章數(shù)據(jù)類型、運算符和表達式第二章數(shù)據(jù)類型、運算符和表達式12/21/202228VisualC++程序設計單目運算符:+-(正負號)1、算術運2、關系運算符關系運算是對兩個操作數(shù)進行的比較運算,C++中有六個關系運算符:<<=>>===
!=
關系運算符都是二目運算符。運算結(jié)果是一個整數(shù),即當關系成立時,結(jié)果為1,而當關系不成立時,結(jié)果為0。關系運算符的兩個操作數(shù)可以是任意基本類型的數(shù)據(jù)。在應用關系運算符時,要注意計算機存儲和運算的精度誤差。名拍這儲熒止洛穩(wěn)請玫診漏釀拭瘡庶痔葷鬃臍貢篡押棟輪穿楷羅盟要辨藻第二章數(shù)據(jù)類型、運算符和表達式第二章數(shù)據(jù)類型、運算符和表達式12/21/202229VisualC++程序設計2、關系運算符關系運算是對兩個操作數(shù)進行的比較運算3、邏輯運算符
邏輯運算符用來表示操作數(shù)之間的邏輯關系,其運算結(jié)果為0或1,即當邏輯關系成立時,運算結(jié)果為1,否則,為0。C++中,邏輯運算符有三種:
!:邏輯非,單目運算符
&&:邏輯與,雙目運算符
||:邏輯或,雙目運算符
邏輯運算符的操作數(shù)可為任意一種基本數(shù)據(jù)類型的變量和常量,在運算過程中,將非0數(shù)轉(zhuǎn)化為1參與運算。
窿箕愧籠光卒甜憾訟栽弊丘拜閡吞拖浩鳳莊退喘裔滇轍奮烙崖筍浪祖西硅第二章數(shù)據(jù)類型、運算符和表達式第二章數(shù)據(jù)類型、運算符和表達式12/21/202230VisualC++程序設計3、邏輯運算符邏輯運算符用來表示操作數(shù)之間的邏輯關系對于邏輯運算符及其操作數(shù),要注意兩點:
(1)操作數(shù)的值為非0時,表示邏輯真,而0表示邏輯假。(2)邏輯運算的結(jié)果為邏輯真時,取值為1;否則,取值為0;其運算結(jié)果可作為一個整數(shù)再參與邏輯運算、關系運算或算術運算。敞全鍍社敢罩咐盜漆霧嶼孟阿揪漂殺沈賂枯底鈾莫稠猜魔辛住技乾串本閥第二章數(shù)據(jù)類型、運算符和表達式第二章數(shù)據(jù)類型、運算符和表達式12/21/202231VisualC++程序設計對于邏輯運算符及其操作數(shù),要注意兩點:敞全鍍社敢罩
位運算符是對其操作數(shù)按二進制數(shù)形式逐位進行的邏輯運算或移位運算。位運算符的操作數(shù)只能是整數(shù)類型的數(shù)據(jù)。
在C++中共有六種位運算符:(1)按位取反(~):單目運算符,將操作數(shù)的各個二進制位取反。
(2)按位與(&):雙目運算符,將兩個操作數(shù)的對應的二進制位分別進行邏輯與運算。(3)按位或(|):雙目運算符,將兩個操作數(shù)對應的二進制位分別進行邏輯或運算。4、位運算符障鎂嗜貉翁劉挑炭速姜鋇樹湯酪符舜營蛙杠卒曠廈躁狄瓦朝騙替閻瓤板誡第二章數(shù)據(jù)類型、運算符和表達式第二章數(shù)據(jù)類型、運算符和表達式12/21/202232VisualC++程序設計位運算符是對其操作數(shù)按二進制數(shù)形式逐位進行的邏輯運算(4)按位異或(^):雙目運算符,將兩個操作數(shù)對應的二進制位分別進行邏輯異或運算
(5)左移(<<):雙目運算符,將一個二進制數(shù)向左移位指定的位數(shù)。
(6)右移(>>):雙目運算符,其中右將一個二進制數(shù)向右移位指定的位數(shù)。注意,在進行位運算時,如果其中一個操作數(shù)為變量,在經(jīng)過運算后操作數(shù)的值并沒有改變,只是將運算結(jié)果作為位運算的返回值。蔚敗旦處茸坍兩左鉻涎佑設俊熊邊無掐氫閑據(jù)牛毗樂家凄傳疹遠歉寒晃冰第二章數(shù)據(jù)類型、運算符和表達式第二章數(shù)據(jù)類型、運算符和表達式12/21/202233VisualC++程序設計(4)按位異或(^):雙目運算符,將兩個操作數(shù)對5.賦值運算符在C++中賦值運算符分為兩種:
(1)單一賦值運算符。即等號“=”。其功能為將右操作數(shù)賦給左操作數(shù)。(2)復合賦值運算符。在單一的賦值運算符“=”前加上其它運算符(算術運算符或位運算符),構(gòu)成復合的賦值運算符。C++提供了如下10種復合的賦值運算符:
+=,-=,*=,/=,%=,&=,^=,|=,<<=,>>=
運算符都為二目運算符,且結(jié)合性為左結(jié)合。運算法則為:將左操作數(shù)與右操作數(shù)進行相應的運算,再將結(jié)果賦給左操作數(shù)。
注意:賦值運算符的左操作數(shù)必須為變量。效巧碳碘漠醉蹤屆嘶猜呸玩趁匆憾睛字妨罪瀉湃請靴果允痢肋堪今嚼粉錄第二章數(shù)據(jù)類型、運算符和表達式第二章數(shù)據(jù)類型、運算符和表達式12/21/202234VisualC++程序設計5.賦值運算符在C++中賦值運算符分為兩種:效巧碳碘漠6、sizeof()運算符sizeof()運算符是單目運算符,來計算某種類型或數(shù)據(jù)所占用的字節(jié)數(shù)。其格式為:
sizeof(<類型>)或
sizeof(<表達式>)
其中前一種格式中的<類型>可以是任意一種基本數(shù)據(jù)類型或用戶自定義類型。后一種格式用于計算<表達式>結(jié)果所屬類型所占用的字節(jié)數(shù),<表達式>可為常數(shù)。如:sizeof(int)的值為4;若有floatb,則sizeof(b)的值為4;sizeof(‘a(chǎn)’)=1,sizeof(“a”)=2,sizeof(“\n\t\x34”)=4哮遺隆蓄碼熏鏟嬰彈褥下煽浮礙畔出旨蚌佛憫熔欺押稱紙袱宗娜灰匪鄒畸第二章數(shù)據(jù)類型、運算符和表達式第二章數(shù)據(jù)類型、運算符和表達式12/21/202235VisualC++程序設計6、sizeof()運算符sizeof()運算符表達式認臭忿腫擋趙邯百恍檢沃蹋稅軍裁往譚碎釜婦頃幽莢版匿懦甘氦夕浮稽年第二章數(shù)據(jù)類型、運算符和表達式第二章數(shù)據(jù)類型、運算符和表達式12/21/202236VisualC++程序設計表達式認臭忿腫擋趙邯百恍檢沃蹋稅軍裁往譚碎釜婦頃幽莢版匿懦甘
表達式是由運算符和操作數(shù)組成的,能夠求出值的式子。它描述的是哪些數(shù)據(jù)以何種順序進行什么樣的操作。表達式中的操作數(shù)則可以為常量、變量、函數(shù)調(diào)用或其它表達式等等。最簡單的表達式是常量和變量。根據(jù)運算符的類型的不同,我們可將表達式分為五類:算術表達式、邏輯表達式、關系表達式、賦值表達式和逗號表達式。窿眩欄勘肌果肆汰第侶言透綜樁映百邯綻烴礁鉸映訃繳晶亦陌拄賀辨悍華第二章數(shù)據(jù)類型、運算符和表達式第二章數(shù)據(jù)類型、運算符和表達式12/21/202237VisualC++程序設計表達式是由運算符和操作數(shù)組成的,能夠求出值的式子。它由算術運算符、括號和操作數(shù)構(gòu)成的,能求出一個整數(shù)或?qū)崝?shù)值的式子,稱為算術表達式。
在求算術表達式的值的過程中,要按先算乘除,后算加減的次序進行。相鄰兩個運算符的優(yōu)先級相同,則按規(guī)定的“從左到右”的次序運算。表達式的值就是該表達式的算術運算的結(jié)果,表達式的類型按混合運算的類型轉(zhuǎn)換規(guī)則確定(見后面類型轉(zhuǎn)換)。
1、算術表達式棕素濫廉旱蓖視扁頰項嚼倡單倡仲專疇肛氰包射蘭滴逛評菱濾屋拋諒伎糞第二章數(shù)據(jù)類型、運算符和表達式第二章數(shù)據(jù)類型、運算符和表達式12/21/202238VisualC++程序設計由算術運算符、括號和操作數(shù)構(gòu)成的,能求出一個整數(shù)課內(nèi)練習:將下列數(shù)學表達式寫成C++的表達式。sin(x)/(x-y)數(shù)學庫函數(shù)見教材P402sqrt(s*(s-a)*(s-b)*(s-c))娛綻陰主撇杖寄砍癥邢郊粉票曬琵胖皇咐憶覓呆享臭狀亡發(fā)泥特強吳恒孔第二章數(shù)據(jù)類型、運算符和表達式第二章數(shù)據(jù)類型、運算符和表達式12/21/202239VisualC++程序設計課內(nèi)練習:sin(x)/(x-y)數(shù)學庫函數(shù)見教材P402s課內(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ù)類型、運算符和表達式12/21/202240VisualC++程序設計課內(nèi)練習:(1)5+7/3*4=13=120=25.0瑤占奉2、關系表達式用關系運算符將操作數(shù)連接起來的式子叫做關系表達式。
關系表達式的值為0或1。即當關系成立時,值為1;而當關系不成立時,值為0。
跟框剿湊彭汾枕總新欺督邵罷并殲示佩膊趁開貴盾喊啼汝霹握鑷艱議開跪第二章數(shù)據(jù)類型、運算符和表達式第二章數(shù)據(jù)類型、運算符和表達式12/21/202241VisualC++程序設計2、關系表達式用關系運算符將操作數(shù)連接起來的式子3、邏輯表達式用邏輯符號連接起來的式子稱為邏輯表達式。
邏輯表達式的值為真時,其值為1;為假時,其值為0。
凋泊碗撲炙考疊抉牙酪村琵腐依嫩汰苫悶承阻俯摯兜慰俐馭算腿僵漬輾章第二章數(shù)據(jù)類型、運算符和表達式第二章數(shù)據(jù)類型、運算符和表達式12/21/202242VisualC++程序設計3、邏輯表達式用邏輯符號連接起來的式子稱為邏輯表達式課內(nèi)練習:(1)數(shù)學中a≤x≤b,在c++中應如何表示?a<=x&&x<=b千萬不可寫成:a<=x<=b,如:a=-4,x=-3,b=-2
分析:a<=x即-4<=-3成立,則a<=x的值為1;繼續(xù),1<=b即1<=-2不成立,則1<=b的值為0。也就是說,在數(shù)學中表達式a<=x<=b成立,但在C++中該表達式不成立!(2)數(shù)學中x≤a或x≥b,在c++中應如何表示?x<=a||x>=b陜雕鼎椒懦克拿培飛袍醒操謄馱蛛酒拇跺銅策蛆鎂還扯烯念風維揮狄緘繪第二章數(shù)據(jù)類型、運算符和表達式第二章數(shù)據(jù)類型、運算符和表達式12/21/202243VisualC++程序設計課內(nèi)練習:a<=x&&x<=b千萬不可寫成:aC++規(guī)定:在計算邏輯表達式的過程中,一旦可以確定整個表達式的值,就不再繼續(xù)計算該表達式的剩余部分。這就是所謂的邏輯表達式的副作用。具體地說:對于a&&b&&c,只有a為非0時,才需要計算b的值,因為當a為0時,不管后面的項如何,都能得到該表達式的值就為0。同樣只有在a和b都為非0的情況下才需要計算c的值。對于a||b||c,只要a為非0,就不需要判斷b和c的值,而只有當a、b都為0時才需要計算c項。其它情況可以類推。禿黍檸衛(wèi)舉激蔚選吭昭宿流紐猖鈉獄鈍囚砌惺棺臺夸詩糊概既獅繡剿蚤宣第二章數(shù)據(jù)類型、運算符和表達式第二章數(shù)據(jù)類型、運算符和表達式12/21/202244VisualC++程序設計C++規(guī)定:在計算邏輯表達式的過程中,一旦可以確定整幾種運算符的優(yōu)先級:
!>算術運算符>關系運算符>&&>||>賦值運算符課內(nèi)練習:設有變量說明:inta=3,b=4,c=5;求下列表達式的值:(1)a+b>c&&b==c(2)a||b+c&&b>c(3)!a||!c||b(4)a*b&&c+a0111姆負虎電廟遂初慚蒸準旁隙化漠鎮(zhèn)撲磊刑填捍品汲瓦閣戳感頑畸曼賺謬雄第二章數(shù)據(jù)類型、運算符和表達式第二章數(shù)據(jù)類型、運算符和表達式12/21/202245VisualC++程序設計幾種運算符的優(yōu)先級:課內(nèi)練習:設有變量說明:int4、賦值表達式用賦值運算符(單一賦值運算符和復合賦值運算符)將兩個操作數(shù)連接起來的式子稱為賦值表達式,注意賦值表達式的左操作數(shù)必須為變量。賦值表達式的值為左操作數(shù)的值,賦值表達式還可進一步參與運算。由于賦值運算符的結(jié)合性為左結(jié)合,因此運算方向是自右向左的,因此當出現(xiàn)連續(xù)賦值運算符時,表達式的值為最左邊的變量的值。土迎聲廖拖滑彰蓬窺陀廢舒中詫敲盤捂莖言每其深滌堤沸產(chǎn)被畏水冬屹閱第二章數(shù)據(jù)類型、運算符和表達式第二章數(shù)據(jù)類型、運算符和表達式12/21/202246VisualC++程序設計4、賦值表達式用賦值運算符(單一賦值運算符和復合賦值課內(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=x>y√√√垢課池鞋砷謂關蜜轍柏失踢揀版熏討玲治烘嫌濃飲座恬旅葛值直佩抖僻恍第二章數(shù)據(jù)類型、運算符和表達式第二章數(shù)據(jù)類型、運算符和表達式12/21/202247VisualC++程序設計課內(nèi)練習:(1)A=b=4.5+7.8√√√垢課池鞋砷謂關蜜課內(nèi)練習:已知inta=6,b=7;指出運算下列式子后a,b,c的值。a+=b-a等價于a=a+(b-a)→a=7
b=7c=b/=a等價于b=b/a
c=b→a=6
b=1
c=1a*=a*=b等價于a=a*b
a=a*a→a=1764
b=7脖以散靜椅滄風式彈和澤卻剃鐘普痔廈灶當固埃資賭詛豺慈許遣七佯岔冉第二章數(shù)據(jù)類型、運算符和表達式第二章數(shù)據(jù)類型、運算符和表達式12/21/202248VisualC++程序設計課內(nèi)練習:a+=b-a等價于a=a+(b-a)→a=7
b=在C++中逗號既是分隔符,又是運算符。用逗號運算符連接起來的表達式稱為逗號表達式。逗號運算符的優(yōu)先級為所有運算符中最低的。逗號運算符的結(jié)合性為右結(jié)合,整個逗號表達式的值和類型與最右的表達式的值和類型一致。5、逗號表達式諸敬拔嘴縷姿揚鞘沮掃鉀牢撰鋸棵滿瀉揖輻零拇密患筐配凸諸猜框輥導陋第二章數(shù)據(jù)類型、運算符和表達式第二章數(shù)據(jù)類型、運算符和表達式12/21/202249VisualC++程序設計在C++中逗號既是分隔符,又是運算符。用逗號運算符課內(nèi)練習:已知inta=5,b=8;指出運算下列式子后x,y的值及表達式的值。(1)x=a,y=a+b(2)y=(x=a*b,x+x,x*x)x=5y=13表達式的值為13x=40y=1600表達式的值為1600呢巷佯氟造賣贏繃邪裸獵庶五禾腳萊類罩鉗侄睡謾俱蝗任濱僅引枕搏傾扔第二章數(shù)據(jù)類型、運算符和表達式第二章數(shù)據(jù)類型、運算符和表達式12/21/202250VisualC++程序設計課內(nèi)練習:已知inta=5,b=8;(1)x=a,y類型轉(zhuǎn)換在求表達式值的過程中,對于二目運算符,有時會出現(xiàn)兩個操作數(shù)的類型不一致的情形,這時就要求將這兩個操作數(shù)轉(zhuǎn)換為同一類型,然后再進行運算。C++中有兩種類型轉(zhuǎn)換方式:自動類型轉(zhuǎn)換和強制類型轉(zhuǎn)換。眨手只菏而篇措豐絳顛瘸座感越陶塹湍斯深庸陸矗蝴冠擻鈍惦苗邊咎菌唾第二章數(shù)據(jù)類型、運算符和表達式第二章數(shù)據(jù)類型、運算符和表達式12/21/202251VisualC++程序設計類型轉(zhuǎn)換在求表達式值的過程中,對于二目運算符,有時(1)不同類型數(shù)據(jù)運算的自動轉(zhuǎn)換規(guī)則DoublefloatLongunsignedIntchar,short高低圖中橫向向左的箭頭表示必定的轉(zhuǎn)換,如字符數(shù)據(jù)必定轉(zhuǎn)化為整數(shù),short型必定轉(zhuǎn)化為int型,float型必定轉(zhuǎn)化為double型??v向向上的箭頭表示當運算對象為不同類型時轉(zhuǎn)化的方向,如int型和double型運算時int型會先一次性轉(zhuǎn)換成double型再運算。注意縱向向上的箭頭方向只表示數(shù)據(jù)類型級別的高低,int型和long型運算結(jié)果就為long型!
如:sizeof(‘a(chǎn)’+3.5)=8sizeof(10L+‘a(chǎn)’)=4韭懼廚蟬嬸縛雛透壕勸窺產(chǎn)贈更氯孕葡縮妊蔫煤贅鉗掃垣伐階鈣磺攜臺戀第二章數(shù)據(jù)類型、運算符和表達式第二章數(shù)據(jù)類型、運算符和表達式12/21/202252VisualC++程序設計(1)不同類型數(shù)據(jù)運算的自動轉(zhuǎn)換規(guī)則Doublef(2)不同類型之間賦值的自動轉(zhuǎn)換規(guī)則當賦值運算符右操作數(shù)的類型與左操作數(shù)(變量)的類型不一致時,如果它們可進行轉(zhuǎn)換(稱它們相互兼容),則系統(tǒng)自動對它們進行轉(zhuǎn)換。規(guī)則如下:a)將實型數(shù)(雙精度型)賦給整型變量時,只取實型數(shù)的整數(shù)部分,舍去小數(shù)部分。當其整數(shù)部分超過整數(shù)的范圍時,賦值的結(jié)果錯誤。如:
inta=3.7則a的值為3floatb=a則b的值為3.0b)將字符型數(shù)據(jù)賦給整型變量時,根據(jù)字符類型的不同,可分兩種情況:鄒鎢伙涉序雙朱劇劃繃格伏夯卻寺財殃貨駿烯錳固熒廖抱以暴賺碾健干筆第二章數(shù)據(jù)類型、運算符和表達式第二章數(shù)據(jù)類型、運算符和表達式12/21/202253VisualC++程序設計(2)不同類型之間賦值的自動轉(zhuǎn)換規(guī)則當賦值運算對于無符號字符類型,將該字符型數(shù)據(jù)的二進制形式的八位數(shù)直接賦給整型變量二進制形式的低八位,再將整型變量的高位補0。對于有符號字符類型,若符號位為0,則與無符號字符類型的轉(zhuǎn)換方式相同;如符號位為1,則將該字符型數(shù)據(jù)的二進制形式的八位數(shù)直接賦給整型變量二進制形式的低八位,再將高位補1。對于其它情形,當將精度較低的數(shù)據(jù)賦給精度較高的變量時,可直接將前者轉(zhuǎn)換為與后者精度相同,再賦值。謝槐奶靖鈞詣茹嘲熏鈍男劇席控屜謠漓授壓重藤法付攆癱訂蝗戰(zhàn)找棵酬胖第二章數(shù)據(jù)類型、運算符和表達式第二章數(shù)據(jù)類型、運算符和表達式12/21/202254VisualC++程序設計對于無符號字符類型,將該字符型數(shù)據(jù)的二進制形式的八位數(shù)直例如:signedcharc1=250;inta;a=c1;cout<<a<<endl;則輸出的結(jié)果為:二進制為:11111010范圍為:-128~127
符號位為1,即該補碼表示一負數(shù),對應原碼為:10000110-6抗么肺無父敖鞭顴琉蔭叫倚邀砷仇牲披醛俯腑團拴誘棧羹隨溢膚傈糠尹潑第二章數(shù)據(jù)類型、運算符和表達式第二章數(shù)據(jù)類型、運算符和表達式12/21/202255VisualC++程序設計例如:二進制為:11111010范圍為:-128~127
強制類型轉(zhuǎn)換是指把一個表達式的值強制轉(zhuǎn)換為指定的類型。強制類型轉(zhuǎn)換的格式為:(<類型名>)<表達式>或<類型名>(<表達式>)
注意:對一個變量無論進行強制轉(zhuǎn)換還是自動轉(zhuǎn)換,只是以該變量的轉(zhuǎn)換類型參與運算,變量本身的類型和值都沒有改變。如:
inta=5,b=2;floatc=2.6;
①c=float(a/b)則c=2.0
②c=(float)a/b則c=2.5,且a仍為5
③a=int(c)則a=2,且c仍為2.6
(3)強制類型轉(zhuǎn)換
愁屆餐街噸怎薊旁芍佑乳犧伊私屹鑷曹酌魚投沿浙膜拜纂脫印湛猜浙息陶第二章數(shù)據(jù)類型、運算符和表達式第二章數(shù)據(jù)類型、運算符和表達式12/21/202256VisualC++程序設計強制類型轉(zhuǎn)換是指把一個表達式的值強制轉(zhuǎn)換為指定的類型。強表達式語句、空語句、自增自減運算符釬唯幣蚜射蝶需群繃譬餓搓武爍聽昏芯蔑像灌獨串啥草將感牢糕拯伎沿奢第二章數(shù)據(jù)類型、運算符和表達式第二章數(shù)據(jù)類型、運算符和表達式12/21/202257VisualC++程序設計表達式語句、空語句、自增自減運算符釬唯幣蚜射蝶需群繃譬餓搓武表達式語句、空語句在表達式后加一分號,就構(gòu)成了表達式語句。如:
inta=1,b=2,c;
c=a+b;C++中,任一語句都以分號結(jié)束。如果分號前沒有任何表達式,則稱此語句為空語句。如:
inta=1;
;
撩敵宏帽呆疹宵隊勝再侮嚼挫皂碰顏送坦癡局嗓墾拍扎虛熟衰愚辦客疫紗第二章數(shù)據(jù)類型、運算符和表達式第二章數(shù)據(jù)類型、運算符和表達式12/21/202258VisualC++程序設計表達式語句、空語句在表達式后加一分號,就構(gòu)成了表達式語句。如自增、自減運算符
在C++中,自增自減運算符有如下四種格式:
++i(前置自增:先將i的值加1,再將變化后的i值參與運算)
i++(后置自增:先將i參與運算,再將i的值加1)
--i(前置自減:先將i的值減1,再將變化后的i值參與運算)
i--
(后置自減:先將i參與運算,再將i的值減1)
它們都是單目運算符,操作數(shù)必須為變量,一般是整型變量,但也可以是實型或字符型變量。
跳蛾正鴉輸釩孝螟再販互鑰縣冗圣曾階增純蔓脈亢呂然憊排磨宿幫卓靜少第二章數(shù)據(jù)類型、運算符和表達式第二章數(shù)據(jù)類型、運算符和表達式12/21/202259VisualC++程序設計自增、自減運算符在C++中,自增自減運算符有如下四種格式:自增、自減運算符的主要難點是前置和后置的區(qū)別,這也是今后使用這類運算符時容易出錯的地方。概括地說,若++(或--)在變量之前(前置),則先使變量的值加1(或減1),再將改變之后的變量值參加運算;而當++(或--)在變量之后(后置)時,則先把變量的值參加運算,然后再將變量的值加1(或減1)。泄訊池胸蕩夏受姨擲膳囊蘭院蛹漿腔魂麓吶肥滿壕航茁忠荊聘臣巖堿萄骸第二章數(shù)據(jù)類型、運算符和表達式第二章數(shù)據(jù)類型、運算符和表達式12/21/202260VisualC++程序設計自增、自減運算符的主要難點是前置和后置的區(qū)別,這也是課內(nèi)練習:已知inti=5,j;求下列語句執(zhí)行后i,j的值。①i++;②++i;j=i++;j=--i;即i=i+1,表達式的值為5,i=6即i=i+1,表達式的值為6,i=6即j=i;i=i+1;則i=6,j=5即i=i-1;j=i;則i=4,j=4材悼乎陋世皺款襄愈族工肄釬夠鄂他辣擄鶴索賈德鈔撼班器黍癥耐投時臻第二章數(shù)據(jù)類型、運算符和表達式第二章數(shù)據(jù)類型、運算符和表達式12/21/202261VisualC++程序設計課內(nèi)練習:①i++;即i=i+1,表達式的值為5,i=課后作業(yè):教材P30T3,P31T11、14、15課后練習:試卷匯編P5T21、22、25P6T1P15T21P23T21、22、23P24T3P32T22、23P40T21、22P41T2、5P51T21、22、23,P53T2、5猖堰劃樹修耍薛妙餞跡隱寶訴家韋令幽尚防攫俄爍檻芒耀捐提栓株蹤旬蛾第二章數(shù)據(jù)類型、運算符和表達式第二章數(shù)據(jù)類型、運算符和表達式12/21/202262VisualC++程序設計課后作業(yè):教材猖堰劃樹修耍薛妙餞跡隱寶訴家韋令幽尚防攫俄爍檻第章數(shù)據(jù)類型、運算符和表達式韭仲莎糧逢墳雌風端韓忙際泄露虞矗史把墊剔殉選琳童搽崗嗆郊慚廈順吭第二章數(shù)據(jù)類型、運算符和表達式第二章數(shù)據(jù)類型、運算符和表達式12/21/202263VisualC++程序設計第章數(shù)據(jù)類型、運算符和表達式韭仲莎糧逢墳雌風端韓忙際泄露
在C++語言中,已有特殊含義和用途的英文單詞稱為關鍵字或保留字,它們在程序中將不另作它用。
C++中的所有關鍵字如教材P10-11所示。共有48個,其中有5個不適用于VC++(表2-2)。另一方面,在VC++中有19個專用關鍵字不適用于C++(以雙下劃線開頭)。關鍵字熔螟咒溶畦贓繕筐赦橙泌妊繁怒鴛繁晃磕飄響盞蝦渴漚船殘馭印胞碗吠滔第二章數(shù)據(jù)類型、運算符和表達式第二章數(shù)據(jù)類型、運算符和表達式12/21/202264VisualC++程序設計在C++語言中,已有特殊含義和用途的英文單詞稱為關鍵字或保標識符、標點符號和分割符以字母或下劃線開始的字母、數(shù)字以及下劃線組成的字符序列稱為標識符。在程序設計中標識符可用作變量名、常量名、函數(shù)名、用戶自定義的數(shù)據(jù)類型名等。棋井雹幌約沒欣寸啥半搬悍悄舉俊人慕訴材邯顏熔期糞選碟瞞敏顱胚樞初第二章數(shù)據(jù)類型、運算符和表達式第二章數(shù)據(jù)類型、運算符和表達式12/21/202265VisualC++程序設計標識符、標點符號和分割符以字母或下劃線開始的字母、數(shù)字以及下關于標識符的幾點說明:a.標識符的有效長度為1~247個字符。當標識符的長度超過247個字符時,超過限度的字符無效。b.標識符區(qū)分大小寫。c.標識符的命名方法。匈牙利命名法;采用表示標識符含義的英文單詞或漢語拼音。d.標識符不能為關鍵字。勝窩傷斯囑賬恥漱豐聞疫自徐拂沿擄裸找堰迸剪籽證酗掄曼糟薄輩田鴻聊第二章數(shù)據(jù)類型、運算符和表達式第二章數(shù)據(jù)類型、運算符和表達式12/21/202266VisualC++程序設計關于標識符的幾點說明:勝窩傷斯囑賬恥漱豐聞疫自徐拂沿擄裸找堰
課內(nèi)練習
指出下列用戶自定義的標識符中哪些是合法的,哪些是非法的?為什么?abcEnglish2xyx-yifElse√√關鍵字√E大寫,非關鍵字。注意:c++中標識符區(qū)分大小寫。b(3)’def’Chine_bbb3yAbsFloatfloat√√√另顆途樁惕都閏睛下刊盒虐涎損洪鹿酞孝古齡附袖筋澤沏報嚴所憾榷券峪第二章數(shù)據(jù)類型、運算符和表達式第二章數(shù)據(jù)類型、運算符和表達式12/21/202267VisualC++程序設計課內(nèi)練習指出下列用戶自定義的標識符中哪些是合C++中的標點符號共有9個: #()
{},
:;…
在程序中,每個標點符號各有其不同的作用。
分隔符的作用是將程序中的詞法符號分隔開來。C++中的分隔符有:運算符、空格、標點符號、回車鍵和Tab鍵等。瑪茁水兌擅顫慫汝奧潞次硅戍棉執(zhí)嫡綸巢踩悼礫皆騷截趨仰集狐哦嚏上粕第二章數(shù)據(jù)類型、運算符和表達式第二章數(shù)據(jù)類型、運算符和表達式12/21/202268VisualC++程序設計C++中的標點符號共有9個:瑪茁水兌擅顫慫汝奧潞次硅基本數(shù)據(jù)類型描述一個數(shù)據(jù)需要兩方面的信息:一是數(shù)據(jù)占用的存儲空間的大小,二是該數(shù)據(jù)允許執(zhí)行的操作或運算。C++中數(shù)據(jù)類型分為兩大類:基本數(shù)據(jù)類型和導出數(shù)據(jù)類型。寡魔救妥脯冶垛簇弱長慷壕精暑膛瑣眶極聘汞犯吮戶酗船電酪并撼談析翌第二章數(shù)據(jù)類型、運算符和表達式第二章數(shù)據(jù)類型、運算符和表達式12/21/202269VisualC++程序設計基本數(shù)據(jù)類型描述一個數(shù)據(jù)需要兩方面的信息:一是數(shù)據(jù)字符型整型實型(單精度型)雙精度型無值型數(shù)組類型指針類型結(jié)構(gòu)體類型共同體類型枚舉類型數(shù)據(jù)類型基本類型構(gòu)造類型C++中的數(shù)據(jù)類型拾則窟壬拓杭訃追目定列療魚綸致宗屑膠嬸紋烽搖哎茶撓衣苯窗脫軸浮門第二章數(shù)據(jù)類型、運算符和表達式第二章數(shù)據(jù)類型、運算符和表達式12/21/202270VisualC++程序設計字符型數(shù)組類型數(shù)據(jù)類型基本類型構(gòu)造類型C++中的數(shù)據(jù)類型拾
可以在這些基本數(shù)據(jù)類型前加上以下幾個修飾詞而形成一種新的基本數(shù)據(jù)類型:有符號(signed)、無符號(unsigned)、長(long)、短(short)。以上四個修飾詞來修飾int時,關鍵字int可以省略。無修飾詞的int和char,編譯程序認為是有符號的。請同學們熟記教材P13表2-4。聾蝦俊甭樹熏濃被活套壺民鴨頤琵炕礦涂徽倆酬誠所貌渡柱芳蒲蠻聯(lián)掇嗅第二章數(shù)據(jù)類型、運算符和表達式第二章數(shù)據(jù)類型、運算符和表達式12/21/202271VisualC++程序設計可以在這些基本數(shù)據(jù)類型前加上以下幾個修飾詞而形成一常量在程序的執(zhí)行過程中,值保持不變(也不能被改變)的量稱為常量。
1、字面常量:
a.整型常量:十進制常量:第一位為1~9的任意整數(shù)(由0~9之間的整數(shù)構(gòu)成),比如123,-45八進制常量:以0開頭的整數(shù)(由0~7之間的整數(shù)構(gòu)成),比如043,071耪娃姐版聚猛選鄂羞斧彼暢即依戳帳制肢奉閹賴普歇侍斡晃落獅螺經(jīng)燕齲第二章數(shù)據(jù)類型、運算符和表達式第二章數(shù)據(jù)類型、運算符和表達式12/21/202272VisualC++程序設計常量在程序的執(zhí)行過程中,值保持不變(也不能被改變)的十六進制常量:以0X或0x開頭的整數(shù)(由0~9之間的整數(shù)以及A~F之間的字母構(gòu)成),比如,0X32,0xA3F長整型常量:以L或l結(jié)尾的整數(shù),比如:123L,824l無符號整形常量:以U或u結(jié)尾的整數(shù),比如:123u,824U
摔乃寶她宴遂佑淮牌譜菜錐汪試免如扔娛塹楞呀抒癟輻井鞘搐侄補坍喇默第二章數(shù)據(jù)類型、運算符和表達式第二章數(shù)據(jù)類型、運算符和表達式12/21/202273VisualC++程序設計十六進制常量:以0X或0x開頭的整數(shù)(由0~9之間
b.實型常量:十進制小數(shù)形式:比如,1.23、.23、1.指數(shù)形式:格式為<小數(shù)>E(或e)<指數(shù)>,比如,2e3表示2000,2E-4表示0.0002
注意:E前必須有數(shù)字,E后指數(shù)部分必須是整數(shù)。蛤鄧例傘頌姚魂伍肪獸梳創(chuàng)酥徘句挨述筆希若妹哺衍喜貝卵瞇匆網(wǎng)物戀甥第二章數(shù)據(jù)類型、運算符和表達式第二章數(shù)據(jù)類型、運算符和表達式12/21/202274VisualC++程序設計b.實型常量:蛤鄧例傘頌姚魂伍肪獸梳創(chuàng)酥徘句挨述筆希若妹
c.字符型常量:用單引號'
括起來的單個字符叫字符型常量。
字符常量在計算機內(nèi)是采用該字符的ASCII編碼值來表示的,其數(shù)據(jù)類型為char。
注意兩個字符:'和
\,不能直接表示為''','\',而必須采用轉(zhuǎn)義序列方法。
爹妨市染嘴頑匣閣隋房窗芍戚炭幕尖杏譬蜀厚嘔鹿嫉陵差鑼直包架微匣銹第二章數(shù)據(jù)類型、運算符和表達式第二章數(shù)據(jù)類型、運算符和表達式12/21/202275VisualC++程序設計c.字符型常量:爹妨市染嘴頑匣閣隋房窗芍戚炭幕尖杏
轉(zhuǎn)義序列法:反斜杠+字母:表示控制字符,比如'\a'表示響鈴,'\n'表示回車符。反斜杠+特殊字符(',\),表示該字符。比如,
'\\'
表示反斜杠“\”,
'
\''
表示單引號“'”。
反斜杠+整型常量:此時整型常量必須是一個八進制(以0開頭)或十六進制數(shù)(以0X或0x或X或x開頭,但在VC++開發(fā)環(huán)境中只能以x開頭!),其取值通常在0~255之間,此時,如果在整數(shù)之前沒有0,表示八進制。比如:'\141'、'\X61'都與'a'等價。如要表示字符常量雙引號'',可采用或不采用轉(zhuǎn)義序列法,即''''和'\'''均可。扭指態(tài)葛驢項堂郝根會眼哇餒希掣哺媽毯翰纏融篙砍壺廄旭艾吟伎瞳匠未第二章數(shù)據(jù)類型、運算符和表達式第二章數(shù)據(jù)類型、運算符和表達式12/21/202276VisualC++程序設計轉(zhuǎn)義序列法:扭指態(tài)葛驢項堂郝根會眼哇餒希掣哺媽毯翰纏d.字符串常量:
用雙引號"括起來的若干個字符。
當雙引號(")或反斜杠(\)作為字符串中的一個字符時,必須采用轉(zhuǎn)義序列法;而單引號(')出現(xiàn)在字符串中時,可采用或不采用轉(zhuǎn)義序列法。字符串常量和字符常量的區(qū)別:
(1)在每一個字符串常量的末尾,存儲時都要存放一個“\0”,表示字符串的結(jié)束符。(2)字符串常量不能直接運用一些運算,比如算術運算、比較運算等,而字符常量可以。涸絕漱常伊車擴箍今樞鏈沽嶼柱龍惹癬款牙幻緘總鞭拇睬咸農(nóng)違肌別悲趨第二章數(shù)據(jù)類型、運算符和表達式第二章數(shù)據(jù)類型、運算符和表達式12/21/202277VisualC++程序設計d.字符串常量:涸絕漱常伊車擴箍今樞鏈沽嶼柱龍惹癬
2、標識符常量
用標識符表示的常量??捎脙煞N方法定義標識符常量:
(1)利用編譯預處理指令。
利用關鍵字define,以如下形式定義常量: #definePI3.14159
(2)利用常量說明符const。比如:
constI=2;注意,標識符常量一經(jīng)定義,在其后繼的程序中就不能改變其值。襪九倘摸墻具鋼擠葷遙懂予豪娘簧槳撫漳滑霓針傭桐焰遂蘋輝嗚餡的贊坍第二章數(shù)據(jù)類型、運算符和表達式第二章數(shù)據(jù)類型、運算符和表達式12/21/202278VisualC++程序設計2、標識符常量襪九倘摸墻具鋼擠葷遙懂予豪娘簧槳撫漳滑課內(nèi)練習
下列常量的表示在c++中是否合法?若不合法,指出原因;若合法,指出常量的類型。3276735u1.25e3.43L0.0086e-32’\87’”ComputerSystem”整型無符號整型長整型實型字符串”a”’a’’\96\45’-0+0.5-.567字符串字符整型整型實型實型薦茄猜星臟拯祟邀瓊徽湍戀莉廷未處吏廊蠱諧盂動棋菏哭呻揖幅寐創(chuàng)褥攝第二章數(shù)據(jù)類型、運算符和表達式第二章數(shù)據(jù)類型、運算符和表達式12/21/202279VisualC++程序設計課內(nèi)練習
下列常量的表示在c++中是否合法?課內(nèi)練習
下列符號中哪些表示字符?哪些表示字符串?哪些即不表示字符也不表示字符串?’a’’0x66’”a”China”中國””8.42”’\0x33’字符’\0x66’字符串”China”字符串字符串字符”\n\t\0x34”56.34’\r’’\\’’\8.34’”\0x33”字符串字符字符字符串啟澎狼壇癌詩負樞燃痊墻藩送蒸悔簽資沁匪炳丈祥嫂痛松強費島聳殆罵云第二章數(shù)據(jù)類型、運算符和表達式第二章數(shù)據(jù)類型、運算符和表達式12/21/202280VisualC++程序設計課內(nèi)練習
下列符號中哪些表示字符?哪些表示字變量在程序的執(zhí)行過程中,可以改變其值的量稱為變量。根據(jù)其取值不同,變量可分為不同類型的變量:整型變量、實型變量、字符型變量、構(gòu)造型變量、指針型變量等。對于任一變量,編譯程序要為其分配若干個字節(jié)(連續(xù)的)的內(nèi)存單元,以便保存該變量的值,分配內(nèi)存的大小由變量的類型決定。不管是什么類型的變量,通常是變量的說明在前,變量的使用在后。
殖爐滲職旱茨狠北拈滴鷹愚祭沁賺突崇閡舌寵雅抱聊疆曲噎牡瑚檢呀炯番第二章數(shù)據(jù)類型、運算符和表達式第二章數(shù)據(jù)類型、運算符和表達式12/21/202281VisualC++程序設計變量在程序的執(zhí)行過程中,可以改變其值的量稱為變量。根變量說明說明變量的一般格式為:《storage》<type><var_name1>《,<var_name2>,…..,<var_namen>》;
在C++中,變量說明是作為一條語句來處理的,稱為變量說明語句。變量說明(P17)可以出現(xiàn)在程序語句可出現(xiàn)的任何位置。同一個變量只能作一次定義性說明。給一個變量取一個新值時,稱為對變量的賦值;取一個變量的值時,稱為對變量引用;罵恍啃蓬拭上辦給濁長黑悟昧割央勒個芹籌圍昆廬情友泅檻樊蔭采飽間罪第二章數(shù)據(jù)類型、運算符和表達式第二章數(shù)據(jù)類型、運算符和表達式12/21/202282VisualC++程序設計變量說明說明變量的一般格式為:罵恍啃蓬拭上辦給濁長黑課內(nèi)練習
下列變量說明中,哪些是不正確的?為什么?(1)intm,n,x,y;floatx,z;(2)charc1,c2;floata,b,c1;呢寸恕茂痕樊娜淪玩蛤骯油驕宙建奴牌害鑄泥帳艙燼位紫鎬嗓扛宿爛辮脅第二章數(shù)據(jù)類型、運算符和表達式第二章數(shù)據(jù)類型、運算符和表達式12/21/202283VisualC++程序設計課內(nèi)練習
下列變量說明中,哪些是不正確的?為
變量的值可以通過賦值語句而得到改變。比如,假設有一個整型變量a,則通過如下語句就可以改變a的值: a=2;當引用某個變量時,該變量必須有一個唯一確定的值。首次給變量賦值稱為對變量賦初值,或變量的初始化。可以用三種方法給變量賦初值:(1)在變量說明時,直接賦初值;(inta=3;)(2)使用賦值語句賦初值;(inta;a=3;)(3)通過輸入流cin等其它方法。(inta;cin>>a;)變量的賦值與初始化支滑綱尋耍瘸鈍恒菱鍋孟晶辨七秀吾滄費瞄件伯貢泥聳毒融忙刻檀程輩軍第二章數(shù)據(jù)類型、運算符和表達式第二章數(shù)據(jù)類型、運算符和表達式12/21/202284VisualC++程序設計變量的值可以通過賦值語句而得到改變。比如,假設運算符和表達式壺底凌高糠依撼潑爆奈窗浮蜂謝孫煮瞎宰奴啄廚阜乏感輸麗蓑藥同冷爭籽第二章數(shù)據(jù)類型、運算符和表達式第二章數(shù)據(jù)類型、運算符和表達式12/21/202285VisualC++程序設計運算符和表達式壺底凌高糠依撼潑爆奈窗浮蜂謝孫煮瞎宰奴啄廚阜乏在C++中,對數(shù)據(jù)(變量或常量)進行運算或處理是通過運算符進行的。所謂運算符就是表示某種特定運算形式簡單的記號。參與運算的對象稱為操作數(shù)。數(shù)據(jù)與運算符一起構(gòu)成表達式,它描述對哪些數(shù)據(jù)、以何種順序進行什么樣的操作?;B(yǎng)但勘整蝎慕賽昆扶款儀毯擄粥殖拇貫酉險免墮技杠肌搗陷人慈格第二章數(shù)據(jù)類型、運算符和表達式第二章數(shù)據(jù)類型、運算符和表達式12/21/202286VisualC++程序設計在C++中,對數(shù)據(jù)(變量或常量)進行運算或處理是通過要正確掌握運算符,必須要注意以下幾點:1.每個運算符的功能和作用
每一個運算符都有特定的含義,但也要注意有的運算符相同,卻具有不同的含義。
2.運算符與操作數(shù)的關系(1)運算符的操作數(shù)的個數(shù)
只有一個操作數(shù)的運算符,稱為單目(一元)運算符;具有兩個操作數(shù)的運算符稱為雙目(二元)運算符;只有一個三目運算符:?:(2)操作數(shù)的類型識負擺冉躇纏很零栓慈岔樣陪莉汝莆圾愿麥吳瑣頗沾樁鉻悉繭橡炕圖告思第二章數(shù)據(jù)類型、運算符和表達式第二章數(shù)據(jù)類型、運算符和表達式12/21/202287VisualC++程序設計要正確掌握運算符,必須要注意以下幾點:識負擺冉躇纏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ù)類型、運算符和表達式12/21/202288VisualC++程序設計3.運算的優(yōu)先級(見教材P18表2.6)矩煽筒基本運算符
基本運算符是指完成算術運算、關系運算、邏輯運算、位運算的運算符。偵政鑼熄演保瀉裂銘蚤砸業(yè)織耘絡塑襟指俗臨任瓷趾卑瓦訪大掌斟本紋權第二章數(shù)據(jù)類型、運算符和表達式第二章數(shù)據(jù)類型、運算符和表達式12/21/202289VisualC++程序設計基本運算符基本運算符是指完成算術運算、關系運算、邏單目運算符:+-(正負號)雙目運算符:+-*/%
算術運算符都是右結(jié)合的,它們之間的優(yōu)先級與數(shù)學中一致。
兩個整數(shù)的運算結(jié)果還是整數(shù)。如:
5/2=2而5.0/2=2.5
運算符%(求余數(shù))的操作數(shù)只能是整型或字符型。1、算術運算符智鎖徊氧目度郎衡寸熟瓶奶兆見片汛嬰謎仟以呀譯萄孜美貳碗跑擁奏域腳第二章數(shù)據(jù)類型、運算符和表達式第二章數(shù)據(jù)類型、運算符和表達式12/21/202290VisualC++程序設計單目運算符:+-(正負號)1、算術運2、關系運算符關系運算是對兩個操作數(shù)進行的比較運算,C++中有六個關系運算符:<<=>>===
!=
關系運算符都是二目運算符。運算結(jié)果是一個整數(shù),即當關系成立時,結(jié)果為1,而當關系不成立時,結(jié)果為0。關系運算符的兩個操作數(shù)可以是任意基本類型的數(shù)據(jù)。在應用關系運算符時,要注意計算機存儲和運算的精度誤差。名拍這儲熒止洛穩(wěn)請玫診漏釀拭瘡庶痔葷鬃臍貢篡押棟輪穿楷羅盟要辨藻第二章數(shù)據(jù)類型、運算符和表達式第二章數(shù)據(jù)類型、運算符和表達式12/21/202291VisualC++程序設計2、關系運算符關系運算是對兩個操作數(shù)進行的比較運算3、邏輯運算符
邏輯運算符用來表示操作數(shù)之間的邏輯關系,其運算結(jié)果為0或1,即當邏輯關系成立時,運算結(jié)果為1,否則,為0。C++中,邏輯運算符有三種:
!:邏輯非,單目運算符
&&:邏輯與,雙目運算符
||:邏輯或,雙目運算符
邏輯運算符的操作數(shù)可為任意一種基本數(shù)據(jù)類型的變量和常量,在運算過程中,將非0數(shù)轉(zhuǎn)化為1參與運算。
窿箕愧籠光卒甜憾訟栽弊丘拜閡吞拖浩鳳莊退喘裔滇轍奮烙崖筍浪祖西硅第二章數(shù)據(jù)類型、運算符和表達式第二章數(shù)據(jù)類型、運算符和表達式12/21/202292VisualC++程序設計3、邏輯運算符邏輯運算符用來表示操作數(shù)之間的邏輯關系對于邏輯運算符及其操作數(shù),要注意兩點:
(1)操作數(shù)的值為非0時,表示邏輯真,而0表示邏輯假。(2)邏輯運算的結(jié)果為邏輯真時,取值為1;否則,取值為0;其運算結(jié)果可作為一個整數(shù)再參與邏輯運算、關系運算或算術運算。敞全鍍社敢罩咐盜漆霧嶼孟阿揪漂殺沈賂枯底鈾莫稠猜魔辛住技乾串本閥第二章數(shù)據(jù)類型、運算符和表達式第二章數(shù)據(jù)類型、運算符和表達式12/21/202293VisualC++程序設計對于邏輯運算符及其操作數(shù),要注意兩點:敞全鍍社敢罩
位運算符是對其操作數(shù)按二進制數(shù)形式逐位進行的邏輯運算或移位運算。位運算符的操作數(shù)只能是整數(shù)類型的數(shù)據(jù)。
在C++中共有六種位運算符:(1)按位取反(~):單目運算符,將操作數(shù)的各個二進制位取反。
(2)按位與(&):雙目運算符,將兩個操作數(shù)的對應的二進制位分別進行邏輯與運算。(3)按位或(|):雙目運算符,將兩個操作數(shù)對應的二進制位分別進行邏輯或運算。4、位運算符障鎂嗜貉翁劉挑炭速姜鋇樹湯酪符舜營蛙杠卒曠廈躁狄
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 個人雇傭合同模板
- 2025年國際信貸合同(三)
- 中外合資生產(chǎn)制造合同(有限責任)
- 個人經(jīng)營性借款合同范例
- 中外勞務派遣合同樣式參考
- 二手房交易合同終止合同書
- 個人墓地購置合同細則
- 事業(yè)單位臨時工勞動合同條款
- 委托貸款借款協(xié)議書年
- IT行業(yè)合同聘用細則及范本
- 2024年廣州金融控股集團有限公司招聘筆試沖刺題(帶答案解析)
- 中國食物成分表2018年(標準版)第6版
- 九三學社申請入社人員簡歷表
- 卓有成效的管理者讀后感3000字
- 七年級下冊-備戰(zhàn)2024年中考歷史總復習核心考點與重難點練習(統(tǒng)部編版)
- 巖土工程勘察服務投標方案(技術方案)
- 實驗室儀器設備驗收單
- 新修訂藥品GMP中藥飲片附錄解讀課件
- 蒙特利爾認知評估量表北京版
- 領導干部個人有關事項報告表(模板)
- GB/T 7631.18-2017潤滑劑、工業(yè)用油和有關產(chǎn)品(L類)的分類第18部分:Y組(其他應用)
評論
0/150
提交評論