數(shù)據(jù)類(lèi)型、運(yùn)算符和表達(dá)式課件_第1頁(yè)
數(shù)據(jù)類(lèi)型、運(yùn)算符和表達(dá)式課件_第2頁(yè)
數(shù)據(jù)類(lèi)型、運(yùn)算符和表達(dá)式課件_第3頁(yè)
數(shù)據(jù)類(lèi)型、運(yùn)算符和表達(dá)式課件_第4頁(yè)
數(shù)據(jù)類(lèi)型、運(yùn)算符和表達(dá)式課件_第5頁(yè)
已閱讀5頁(yè),還剩53頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、數(shù)據(jù)類(lèi)型、運(yùn)算符和表達(dá)式第第 2 章章 數(shù)據(jù)類(lèi)型、運(yùn)算符與表達(dá)式數(shù)據(jù)類(lèi)型、運(yùn)算符與表達(dá)式2.1 保留字和標(biāo)識(shí)符保留字和標(biāo)識(shí)符2.2 C+的基本數(shù)據(jù)類(lèi)型的基本數(shù)據(jù)類(lèi)型2.3 常量和變量常量和變量2.4 基本運(yùn)算符和表達(dá)式基本運(yùn)算符和表達(dá)式2.5 類(lèi)型轉(zhuǎn)換類(lèi)型轉(zhuǎn)換數(shù)據(jù)類(lèi)型、運(yùn)算符和表達(dá)式簡(jiǎn)單地說(shuō):程序簡(jiǎn)單地說(shuō):程序 = 數(shù)據(jù)結(jié)構(gòu)數(shù)據(jù)結(jié)構(gòu) + 算法算法C+ 程序的構(gòu)成:程序的構(gòu)成:(1)數(shù)據(jù)描述)數(shù)據(jù)描述(2)執(zhí)行步驟()執(zhí)行步驟( 算法)算法)例例1.1一個(gè)簡(jiǎn)單的一個(gè)簡(jiǎn)單的C+程序程序 #include void main( void ) int num, square ; cout num ;

2、square = num*num; cout num的的平方平方為為: square n; 下面學(xué)習(xí):程序的各種語(yǔ)法元素下面學(xué)習(xí):程序的各種語(yǔ)法元素?cái)?shù)據(jù)類(lèi)型、運(yùn)算符和表達(dá)式2.1 保留字和標(biāo)識(shí)符保留字和標(biāo)識(shí)符2.1.1 保留字(保留字(Reserved Word or Keyword) C+語(yǔ)言自身使用的,已有特殊含義和用途的英文語(yǔ)言自身使用的,已有特殊含義和用途的英文單詞稱為單詞稱為保留字保留字或或關(guān)鍵字關(guān)鍵字。如例如例1.1中的類(lèi)型說(shuō)明符中的類(lèi)型說(shuō)明符 int,用于定義整型變量。用于定義整型變量。用戶不能將其作為自己的變量名或函數(shù)名使用。用戶不能將其作為自己的變量名或函數(shù)名使用。數(shù)據(jù)類(lèi)型、

3、運(yùn)算符和表達(dá)式2.1.2 標(biāo)識(shí)符標(biāo)識(shí)符標(biāo)識(shí)符標(biāo)識(shí)符(identifier): 有效字符序列,有效字符序列, 用來(lái)標(biāo)識(shí)用戶自己定義的用來(lái)標(biāo)識(shí)用戶自己定義的 變量名、符號(hào)常量名、變量名、符號(hào)常量名、 函數(shù)名、數(shù)組名、類(lèi)型名、文件名等函數(shù)名、數(shù)組名、類(lèi)型名、文件名等命名規(guī)則命名規(guī)則:只能由字母、數(shù)字和下劃線三種字符組只能由字母、數(shù)字和下劃線三種字符組 成,且第一個(gè)字符必須為字母或下劃線成,且第一個(gè)字符必須為字母或下劃線 最大長(zhǎng)度為最大長(zhǎng)度為 1 247 個(gè)字符。個(gè)字符。如如: MyName average GetDay StudentName _above Lotus_1_2_3 非法標(biāo)識(shí)符如非法標(biāo)

4、識(shí)符如: M.D.John $123 3Dmax合法標(biāo)識(shí)符如合法標(biāo)識(shí)符如: (有時(shí)用匈牙利命名法)(有時(shí)用匈牙利命名法)數(shù)據(jù)類(lèi)型、運(yùn)算符和表達(dá)式例:例:#include void main(void)int a, b, sum; /* 定義變量定義變量 */a=123; b=456; sum = a + b; coutsum is sumn; 保留字保留字標(biāo)識(shí)符標(biāo)識(shí)符(變量名、函數(shù)名、對(duì)象名)(變量名、函數(shù)名、對(duì)象名)常數(shù)常數(shù)數(shù)據(jù)類(lèi)型、運(yùn)算符和表達(dá)式2.2 C+ 的基本數(shù)據(jù)類(lèi)型的基本數(shù)據(jù)類(lèi)型數(shù)據(jù)類(lèi)型數(shù)據(jù)類(lèi)型基本類(lèi)型基本類(lèi)型導(dǎo)出類(lèi)型導(dǎo)出類(lèi)型整型整型實(shí)型實(shí)型字符型字符型空類(lèi)型空類(lèi)型(無(wú)值型無(wú)值型)

5、單精度型單精度型雙精度型雙精度型數(shù)組類(lèi)型數(shù)組類(lèi)型指針類(lèi)型指針類(lèi)型結(jié)構(gòu)體類(lèi)型結(jié)構(gòu)體類(lèi)型共用體類(lèi)型共用體類(lèi)型枚舉類(lèi)型枚舉類(lèi)型不論是變量還是常數(shù),在計(jì)算機(jī)內(nèi)部都要按照某不論是變量還是常數(shù),在計(jì)算機(jī)內(nèi)部都要按照某種形式存放,存放形式由數(shù)據(jù)類(lèi)型決定。種形式存放,存放形式由數(shù)據(jù)類(lèi)型決定。數(shù)據(jù)類(lèi)型、運(yùn)算符和表達(dá)式類(lèi)類(lèi) 型型 標(biāo)標(biāo) 識(shí)識(shí)名名 稱稱占用占用字節(jié)數(shù)字節(jié)數(shù)取取 值值 范范 圍圍char字符型字符型1128 127int 整型整型4231(2311)float實(shí)型實(shí)型41038 1038double雙精度雙精度實(shí)型實(shí)型810308 10308以上基本類(lèi)型數(shù)據(jù)以上基本類(lèi)型數(shù)據(jù)占內(nèi)存字節(jié)占內(nèi)存字節(jié)不相同,

6、不相同,因此因此數(shù)值范圍數(shù)值范圍也也不同,不同,見(jiàn)表見(jiàn)表 2-1 及表及表 2-2數(shù)據(jù)類(lèi)型、運(yùn)算符和表達(dá)式對(duì)基本類(lèi)型,可以加修飾,如:對(duì)基本類(lèi)型,可以加修飾,如: int 型型int 占占4 字節(jié)字節(jié)short int 占占 2 字節(jié)字節(jié) long int 占占4 字節(jié)字節(jié)數(shù)據(jù)類(lèi)型、運(yùn)算符和表達(dá)式int : signed int unsigned int short int : signed short int unsigned short intlong int: signed long int unsigned long int最簡(jiǎn)形式:最簡(jiǎn)形式:intunsigned int short

7、unsigned shortlongunsigned long 再加修飾,如:再加修飾,如:數(shù)據(jù)類(lèi)型、運(yùn)算符和表達(dá)式注意注意:int 型變量與型變量與 unsigned int 型變量的區(qū)別型變量的區(qū)別 32 位位 范圍范圍 int 型:型: -231 (補(bǔ)碼補(bǔ)碼) (231 - 1) 符號(hào)位符號(hào)位 32 位位 范圍范圍unsigned int 型:型: 0 (232 - 1) 無(wú)符號(hào)位無(wú)符號(hào)位數(shù)據(jù)類(lèi)型、運(yùn)算符和表達(dá)式2.3 常量和變量常量和變量2.3.1 常量常量常量常量:在程序運(yùn)行過(guò)程中,其值不能被改變的量:在程序運(yùn)行過(guò)程中,其值不能被改變的量#include void main(void

8、)int a, b, sum; /* 定義變量定義變量 */a=123; b=456; sum = a + b; coutsum is sumn; 常量常量(常數(shù)常數(shù))數(shù)據(jù)類(lèi)型、運(yùn)算符和表達(dá)式1. 整型常量整型常量 十進(jìn)制整數(shù)十進(jìn)制整數(shù) 123, -456 八進(jìn)制整數(shù)八進(jìn)制整數(shù) 0123, -011 十六進(jìn)制整數(shù)十六進(jìn)制整數(shù) 0 x123, -0 xAB 長(zhǎng)整型與無(wú)符號(hào)型常數(shù)長(zhǎng)整型與無(wú)符號(hào)型常數(shù) 12L, 0234L,-0 xABL 12U, 0234U,0 xABU數(shù)據(jù)類(lèi)型、運(yùn)算符和表達(dá)式2. 實(shí)型常量實(shí)型常量(在內(nèi)存中以浮點(diǎn)形式存放)(在內(nèi)存中以浮點(diǎn)形式存放) (均為十進(jìn)制,無(wú)數(shù)制區(qū)分)(

9、均為十進(jìn)制,無(wú)數(shù)制區(qū)分) 小數(shù)形式小數(shù)形式 : 必須有小數(shù)點(diǎn)必須有小數(shù)點(diǎn) 1.65 1. .123 指數(shù)形式指數(shù)形式 (也稱為科學(xué)表示法)(也稱為科學(xué)表示法): 如如 123000.0 可寫(xiě)為可寫(xiě)為 1.23e5 0.00368 可寫(xiě)為可寫(xiě)為 3.68E-3 e 或或 E前必須有數(shù)字,前必須有數(shù)字,1000寫(xiě)為寫(xiě)為 1e3 不能寫(xiě)為不能寫(xiě)為 e3數(shù)據(jù)類(lèi)型、運(yùn)算符和表達(dá)式3. 字符型常量字符型常量用于表示用于表示ASCII字符,見(jiàn)附錄字符,見(jiàn)附錄A。在內(nèi)存中在內(nèi)存中存放對(duì)應(yīng)的存放對(duì)應(yīng)的ASCII碼值,如碼值,如 a 的的ASCII碼為碼為 97,則在內(nèi)存中用一個(gè)字節(jié)存放:,則在內(nèi)存中用一個(gè)字節(jié)存

10、放:在源程序中在源程序中最基本的表示形式為:最基本的表示形式為:?jiǎn)我?hào)括起來(lái)的一個(gè)字符,如:?jiǎn)我?hào)括起來(lái)的一個(gè)字符,如: a A ? 0 1 1 0 0 0 0 1對(duì)于不可打印的字符,可以用轉(zhuǎn)義字符形式表示對(duì)于不可打印的字符,可以用轉(zhuǎn)義字符形式表示 。數(shù)據(jù)類(lèi)型、運(yùn)算符和表達(dá)式注意:注意:n 與與 n 的區(qū)別的區(qū)別 !轉(zhuǎn)義字符:轉(zhuǎn)義字符:以反斜杠以反斜杠“”引導(dǎo)的特殊形式的引導(dǎo)的特殊形式的 非顯示字符或表示特定意義的字符常量非顯示字符或表示特定意義的字符常量n t b ddd xhh 見(jiàn)表見(jiàn)表 2-3注意:注意:字母字母 A 的的 ASCII 碼是碼是(65)10=(101)8=(41)16在程

11、序中表示字母在程序中表示字母A,可以有三種方法:可以有三種方法: A 101 x41n 表示表示一個(gè)一個(gè)控制字符,控制字符, n 表示一個(gè)字母。表示一個(gè)字母。數(shù)據(jù)類(lèi)型、運(yùn)算符和表達(dá)式4. 字符串常量字符串常量-用雙引號(hào)括起來(lái)的字符序列用雙引號(hào)括起來(lái)的字符序列(在內(nèi)存中存放字符序列的在內(nèi)存中存放字符序列的ASCII碼值,碼值, 最后加一個(gè)結(jié)尾標(biāo)志)最后加一個(gè)結(jié)尾標(biāo)志)如如: How do you do. CHINA a字符串結(jié)束標(biāo)志符是:字符串結(jié)束標(biāo)志符是: 0注意:注意: a 和和 a 是不同的。是不同的。CHINA0.數(shù)據(jù)類(lèi)型、運(yùn)算符和表達(dá)式符號(hào)常量符號(hào)常量:用標(biāo)識(shí)符代表一個(gè)常量,:用標(biāo)識(shí)符

12、代表一個(gè)常量, 必須先定義后使用。必須先定義后使用。例:定義標(biāo)識(shí)符常量例:定義標(biāo)識(shí)符常量#define PRICE 30#define PI 3.1425926#define S Chinaconst f loat pi=3.142.3.2 符號(hào)常量符號(hào)常量數(shù)據(jù)類(lèi)型、運(yùn)算符和表達(dá)式例例2.1 符號(hào)常量的使用符號(hào)常量的使用 #include#define PI 3.1425926void main(void)double angle, radian; cin angle; radian = angle * PI / 180; /角度角度弧度弧度cout radian n; 好處:好處:(1)提高

13、程序的可讀性。)提高程序的可讀性。 (2)程序中使用多處,一改全改。)程序中使用多處,一改全改。數(shù)據(jù)類(lèi)型、運(yùn)算符和表達(dá)式2.3.3 變量變量變量變量:其值可以改變的量。其值可以改變的量。變量名變量名:一個(gè)變量的符號(hào)名一個(gè)變量的符號(hào)名,由由標(biāo)識(shí)符標(biāo)識(shí)符構(gòu)成。構(gòu)成。 一個(gè)變量占據(jù)內(nèi)存一定的一個(gè)變量占據(jù)內(nèi)存一定的存儲(chǔ)單元存儲(chǔ)單元, 在存儲(chǔ)單元中存放該在存儲(chǔ)單元中存放該變量的值變量的值。int a, b ; / 定義定義2個(gè)整型變量個(gè)整型變量a, bunsigned u ; / 定義定義1個(gè)無(wú)符號(hào)整型變量個(gè)無(wú)符號(hào)整型變量ufloat f ; / 定義定義1個(gè)單精度實(shí)型變量個(gè)單精度實(shí)型變量double

14、d ; / 定義定義1個(gè)雙精度實(shí)型變量個(gè)雙精度實(shí)型變量char c1, c2, c3 ; / 定義定義3個(gè)字符型變量個(gè)字符型變量c1, c2, c3 1. 定義變量定義變量數(shù)據(jù)類(lèi)型、運(yùn)算符和表達(dá)式注意注意:(1) 區(qū)別大小寫(xiě)區(qū)別大小寫(xiě): 如如 sum 與與 Sum 為不同的變量名。為不同的變量名。(2)先定義后使用先定義后使用: 分配單元分配單元 、確定類(lèi)型、語(yǔ)法檢查、確定類(lèi)型、語(yǔ)法檢查(3)在一個(gè)程序單元中不能重復(fù)定義。在一個(gè)程序單元中不能重復(fù)定義。(4)關(guān)鍵字(保留字)不能作為標(biāo)識(shí)符。關(guān)鍵字(保留字)不能作為標(biāo)識(shí)符。(5)最大長(zhǎng)度隨不同的最大長(zhǎng)度隨不同的 C+語(yǔ)言系統(tǒng)而定語(yǔ)言系統(tǒng)而定: V

15、C+識(shí)別前識(shí)別前 247 個(gè)字符,超過(guò)無(wú)效。個(gè)字符,超過(guò)無(wú)效。(6)按義取名。按義取名。 數(shù)據(jù)類(lèi)型、運(yùn)算符和表達(dá)式2變量賦初值變量賦初值給變量賦初值的方法有兩種:給變量賦初值的方法有兩種:(1)變量定義后,用賦值語(yǔ)句賦初值。)變量定義后,用賦值語(yǔ)句賦初值。例如:例如: int a, b ; a = 12; b = 24 ; char c1,c2 ; c1=A; c2=B ;(2)在定義變量的同時(shí),)在定義變量的同時(shí), 直接賦初值(稱為變量的初始化)。直接賦初值(稱為變量的初始化)。 例如例如: int a=12, b= -24 ; char c1=A, c2=B ; 數(shù)據(jù)類(lèi)型、運(yùn)算符和表達(dá)式2

16、.4 基本運(yùn)算符和表達(dá)式基本運(yùn)算符和表達(dá)式2.4.1 C+運(yùn)算符及表達(dá)式簡(jiǎn)介運(yùn)算符及表達(dá)式簡(jiǎn)介完成對(duì)常量、變量作運(yùn)算的符號(hào)稱為完成對(duì)常量、變量作運(yùn)算的符號(hào)稱為運(yùn)算符運(yùn)算符。把參與運(yùn)算的對(duì)象稱為把參與運(yùn)算的對(duì)象稱為操作數(shù)操作數(shù)。操作數(shù)可以是常量和變量等。操作數(shù)可以是常量和變量等。各種運(yùn)算符見(jiàn)表各種運(yùn)算符見(jiàn)表 2-4一元運(yùn)算符、二元運(yùn)算符、三元運(yùn)算符一元運(yùn)算符、二元運(yùn)算符、三元運(yùn)算符數(shù)據(jù)類(lèi)型、運(yùn)算符和表達(dá)式2.4.2 算術(shù)運(yùn)算符和算術(shù)表達(dá)式算術(shù)運(yùn)算符和算術(shù)表達(dá)式基本算術(shù)運(yùn)算符基本算術(shù)運(yùn)算符: + - * / % / 整數(shù)運(yùn)算時(shí)為整除,結(jié)果為整數(shù)。整數(shù)運(yùn)算時(shí)為整除,結(jié)果為整數(shù)。 % (模運(yùn)算或稱模運(yùn)

17、算或稱求余求余運(yùn)算運(yùn)算) 必須為整型數(shù)據(jù)。必須為整型數(shù)據(jù)。 例例: 7/3 結(jié)果?結(jié)果? 7.0/3 結(jié)果?結(jié)果? 7%3 結(jié)果?結(jié)果?22.3333331數(shù)據(jù)類(lèi)型、運(yùn)算符和表達(dá)式由運(yùn)算符和操作數(shù)構(gòu)成由運(yùn)算符和操作數(shù)構(gòu)成表達(dá)式表達(dá)式:如:如:a + b a * ( c + d ) a * c + d2.4.3 運(yùn)算優(yōu)先級(jí)和結(jié)合性運(yùn)算優(yōu)先級(jí)和結(jié)合性優(yōu)先級(jí)優(yōu)先級(jí): 對(duì)于同一表達(dá)式中出現(xiàn)多個(gè)運(yùn)算符,先算對(duì)于同一表達(dá)式中出現(xiàn)多個(gè)運(yùn)算符,先算 哪一個(gè)。哪一個(gè)。結(jié)合性結(jié)合性: 在兩種運(yùn)算優(yōu)先級(jí)相同時(shí),在兩種運(yùn)算優(yōu)先級(jí)相同時(shí),“自左向右自左向右”還是還是“自右向左自右向左”運(yùn)算稱為結(jié)合性。運(yùn)算稱為結(jié)合性。

18、數(shù)據(jù)類(lèi)型、運(yùn)算符和表達(dá)式如:如:算術(shù)運(yùn)算符的算術(shù)運(yùn)算符的優(yōu)先級(jí)優(yōu)先級(jí)與與結(jié)合性結(jié)合性優(yōu)先級(jí)優(yōu)先級(jí): + - 較低較低* / % 較高較高結(jié)合性結(jié)合性: 自左向右自左向右例:表達(dá)式:例:表達(dá)式:6/3*2 “自左向右自左向右” 或或 “自右向左自右向左” 運(yùn)算結(jié)果不運(yùn)算結(jié)果不同同數(shù)據(jù)類(lèi)型、運(yùn)算符和表達(dá)式2.4.4 關(guān)系運(yùn)算符和關(guān)系表達(dá)式關(guān)系運(yùn)算符和關(guān)系表達(dá)式“關(guān)系運(yùn)算關(guān)系運(yùn)算”實(shí)際上就是實(shí)際上就是“比較運(yùn)算比較運(yùn)算”關(guān)系運(yùn)算符及其優(yōu)先次序關(guān)系運(yùn)算符及其優(yōu)先次序=!=小于小于小于等于小于等于大于大于大于等于大于等于恒等于恒等于不等于不等于優(yōu)先級(jí)相優(yōu)先級(jí)相同同(較高較高)優(yōu)先級(jí)相優(yōu)先級(jí)相同同(較低較

19、低)數(shù)據(jù)類(lèi)型、運(yùn)算符和表達(dá)式關(guān)系運(yùn)算符及其關(guān)系運(yùn)算符及其優(yōu)先級(jí)優(yōu)先級(jí)說(shuō)明說(shuō)明a=bc 等效于等效于 a=(ba+b 等效于等效于 c(a+b) 算術(shù)算術(shù)關(guān)系(關(guān)系( , 和和 = )關(guān)系(關(guān)系( = 和和 != ) 高高 低低數(shù)據(jù)類(lèi)型、運(yùn)算符和表達(dá)式關(guān)系表達(dá)式關(guān)系表達(dá)式1. 用關(guān)系運(yùn)算符連接兩個(gè)表達(dá)式用關(guān)系運(yùn)算符連接兩個(gè)表達(dá)式如:如:ab, a+bb+c, ab 的值為的值為 0則表達(dá)式則表達(dá)式 bb)&(xy)ab&xy(a=b) | (x=y)a=b | x=y(!a)b!a b數(shù)據(jù)類(lèi)型、運(yùn)算符和表達(dá)式(2)C+ 編譯系統(tǒng)在給出編譯系統(tǒng)在給出邏輯運(yùn)算結(jié)果邏輯運(yùn)算結(jié)果時(shí),時(shí),

20、 以以數(shù)值數(shù)值 1 代表代表 “真真” 以以數(shù)值數(shù)值 0 代表代表 “假假”(1)運(yùn)算時(shí),在)運(yùn)算時(shí),在判斷一個(gè)量判斷一個(gè)量是否為是否為“真真”時(shí)時(shí), 以以非非0 代表代表 “真真” 以以0 代表代表 “假假”例如:例如:已知已知 a=4則則 !a 的值是的值是 0 已知已知 a=0, b=5 則則 a&b 的值是的值是 0則則 a|b 的值是的值是 1則則 !a&b 的值是的值是 1注意:注意:數(shù)據(jù)類(lèi)型、運(yùn)算符和表達(dá)式注意:注意:在在C+程序中,程序中,欲表示數(shù)學(xué)關(guān)系欲表示數(shù)學(xué)關(guān)系 0 x10 ,C+的邏輯表達(dá)式必須寫(xiě)成的邏輯表達(dá)式必須寫(xiě)成 0=x & x=10,而不

21、能寫(xiě)成而不能寫(xiě)成 0= x =10。 為什么?為什么?數(shù)據(jù)類(lèi)型、運(yùn)算符和表達(dá)式 2.4.6 位運(yùn)算符和位運(yùn)算表達(dá)式位運(yùn)算符和位運(yùn)算表達(dá)式 位運(yùn)算是對(duì)整型數(shù)據(jù)的運(yùn)算位運(yùn)算是對(duì)整型數(shù)據(jù)的運(yùn)算(可以操作到位可以操作到位),符號(hào)位參與運(yùn)算,符號(hào)位參與運(yùn)算,主要用于系統(tǒng)程序設(shè)計(jì)。主要用于系統(tǒng)程序設(shè)計(jì)。位運(yùn)算符共有位運(yùn)算符共有6 種種:它們是:按位它們是:按位與與(&) 按位按位或或(|) 按位按位異或異或() 按位按位取反取反() 左移左移() 數(shù)據(jù)類(lèi)型、運(yùn)算符和表達(dá)式舉例:按位舉例:按位“與與”例如:已知:例如:已知:char a=3, b=2 , c ; 求:求: c = a & b

22、 ; 此時(shí),可將此時(shí),可將a、b、c看成是看成是一個(gè)字節(jié)長(zhǎng)度的整型數(shù)。一個(gè)字節(jié)長(zhǎng)度的整型數(shù)。 a 0000 0011 & b 1111 1110 c 0000 0010結(jié)果變量結(jié)果變量 c 的值為的值為 2。其它位運(yùn)算,自學(xué)。其它位運(yùn)算,自學(xué)。數(shù)據(jù)類(lèi)型、運(yùn)算符和表達(dá)式 2.4.7 自增、自減運(yùn)算符和表達(dá)式自增、自減運(yùn)算符和表達(dá)式使變量的值加使變量的值加 1 或減或減 1 的運(yùn)算的運(yùn)算如如: +i, - -i在使用在使用 i 之前加或減之前加或減 1i+, i- -在使用在使用 i 之后加或減之后加或減 1int i=3, j;j=+i;運(yùn)算后運(yùn)算后 i = ?,j = ?int i=3

23、, j;j=i+;運(yùn)算后運(yùn)算后 i = ?,j = ?注意注意:只能用于變量,不能用于常量和表達(dá)式,只能用于變量,不能用于常量和表達(dá)式, 如:如: 3+; (a+b)+; 錯(cuò)誤錯(cuò)誤i = 4,j = 4i = 4,j = 3數(shù)據(jù)類(lèi)型、運(yùn)算符和表達(dá)式2.4.8 賦值運(yùn)算符和賦值表達(dá)式賦值運(yùn)算符和賦值表達(dá)式1賦值運(yùn)算符賦值運(yùn)算符 “ “=” ” 是賦值運(yùn)算符,是賦值運(yùn)算符,賦值表達(dá)式格式:賦值表達(dá)式格式: 求解過(guò)程:求解過(guò)程:求出求出 的值,賦給的值,賦給 賦值表達(dá)式的值:賦值表達(dá)式的值:為為 的值的值如:如:a = b + c 還可以是另一個(gè)賦值表達(dá)式,還可以是另一個(gè)賦值表達(dá)式,數(shù)據(jù)類(lèi)型、運(yùn)算符

24、和表達(dá)式如如: a=b=5 a=5+(c=6) a=(b=4)+(c=6)如果如果 a 初值為初值為 2,表達(dá)式結(jié)果?,表達(dá)式結(jié)果?結(jié)果為結(jié)果為 7如如: a=33是最簡(jiǎn)單的表達(dá)式是最簡(jiǎn)單的表達(dá)式i=i+1它不同于它不同于“等于號(hào)等于號(hào)”注意優(yōu)先級(jí)注意優(yōu)先級(jí) 與結(jié)合性與結(jié)合性 b = c = d = a+5自右向左自右向左表達(dá)式結(jié)果分別為:?表達(dá)式結(jié)果分別為:? 5 11 10數(shù)據(jù)類(lèi)型、運(yùn)算符和表達(dá)式2. 復(fù)合賦值運(yùn)算符復(fù)合賦值運(yùn)算符復(fù)合賦值運(yùn)算符復(fù)合賦值運(yùn)算符x*=y+8等價(jià)于等價(jià)于 x=x*(y+8)x%=3等價(jià)于等價(jià)于 x=x%3x/=9簡(jiǎn)寫(xiě)為:簡(jiǎn)寫(xiě)為: a += 3 a=a+3簡(jiǎn)寫(xiě)為:

25、簡(jiǎn)寫(xiě)為: a - = b a=a-b同理:同理:賦值運(yùn)算符賦值運(yùn)算符 以及以及 復(fù)合賦值運(yùn)算符復(fù)合賦值運(yùn)算符的運(yùn)算優(yōu)先級(jí)比的運(yùn)算優(yōu)先級(jí)比算術(shù)運(yùn)算符算術(shù)運(yùn)算符優(yōu)先級(jí)低,優(yōu)先級(jí)低,運(yùn)算結(jié)合性為運(yùn)算結(jié)合性為自右向左。自右向左。等價(jià)于等價(jià)于 x=x/9數(shù)據(jù)類(lèi)型、運(yùn)算符和表達(dá)式例例: a+=a-=a*a如果如果 a 初值為初值為 2,表達(dá)式結(jié)果?,表達(dá)式結(jié)果? a+=a-=a*a結(jié)果結(jié)果 a 的值為的值為 - 4表達(dá)式的結(jié)果也為表達(dá)式的結(jié)果也為 - 4數(shù)據(jù)類(lèi)型、運(yùn)算符和表達(dá)式2.4.9 逗號(hào)運(yùn)算符和逗號(hào)表達(dá)式逗號(hào)運(yùn)算符和逗號(hào)表達(dá)式逗號(hào)運(yùn)算符逗號(hào)運(yùn)算符:, 逗號(hào)表達(dá)式逗號(hào)表達(dá)式: ,. ,如如: a=3*

26、5 , a*4 , a+5逗號(hào)運(yùn)算符逗號(hào)運(yùn)算符優(yōu)先級(jí)最低優(yōu)先級(jí)最低,結(jié)合性:自左向右結(jié)合性:自左向右求解過(guò)程:求解過(guò)程:依次計(jì)算依次計(jì)算 、 . 的值。的值。逗號(hào)表達(dá)式的值:逗號(hào)表達(dá)式的值:為為 的值的值運(yùn)算結(jié)束后:運(yùn)算結(jié)束后:a 的值為的值為 15 整個(gè)表達(dá)式的值為整個(gè)表達(dá)式的值為 20數(shù)據(jù)類(lèi)型、運(yùn)算符和表達(dá)式a=3*5, a*4x=(a=3, 6*3) 賦值表達(dá)式賦值表達(dá)式x=a=3, 6*3逗號(hào)表達(dá)式逗號(hào)表達(dá)式例:例:如下表達(dá)式,如下表達(dá)式, 運(yùn)算結(jié)束后運(yùn)算結(jié)束后 a=? x=? 表達(dá)式表達(dá)式=?a=15, 表達(dá)式表達(dá)式=60a=3, x=18, 表達(dá)式表達(dá)式=18a=3, x=3, 表

27、達(dá)式表達(dá)式=18逗號(hào)表達(dá)式逗號(hào)表達(dá)式數(shù)據(jù)類(lèi)型、運(yùn)算符和表達(dá)式2.4.10 sizeof( ) 運(yùn)算符運(yùn)算符和表達(dá)式和表達(dá)式 例例 int i ; double x; sizeof(int) sizeof(i) sizeof(double) sizeof(x)格式:格式: sizeof (類(lèi)型標(biāo)識(shí)類(lèi)型標(biāo)識(shí)/變量名變量名) 功能:功能: 求某類(lèi)型變量所占字節(jié)數(shù)求某類(lèi)型變量所占字節(jié)數(shù)結(jié)果均為結(jié)果均為 4結(jié)果均為結(jié)果均為 8數(shù)據(jù)類(lèi)型、運(yùn)算符和表達(dá)式例:例: 求求 & 2.4.11 邏輯表達(dá)式運(yùn)算優(yōu)化時(shí)的副作用邏輯表達(dá)式運(yùn)算優(yōu)化時(shí)的副作用從左向右掃描,計(jì)算從左向右掃描,計(jì)算,當(dāng)當(dāng) 為為真真時(shí),繼

28、續(xù)計(jì)算時(shí),繼續(xù)計(jì)算 當(dāng)當(dāng) 為為假假時(shí),即能確定整個(gè)表達(dá)式時(shí),即能確定整個(gè)表達(dá)式的值為假,則停止計(jì)算的值為假,則停止計(jì)算數(shù)據(jù)類(lèi)型、運(yùn)算符和表達(dá)式例:例:求求 | | 從左向右掃描,計(jì)算從左向右掃描,計(jì)算,當(dāng)當(dāng) 為為假假時(shí),繼續(xù)計(jì)算時(shí),繼續(xù)計(jì)算 當(dāng)當(dāng) 為為真真時(shí),即能確定整個(gè)表達(dá)式時(shí),即能確定整個(gè)表達(dá)式的值為真,則停止計(jì)算的值為真,則停止計(jì)算數(shù)據(jù)類(lèi)型、運(yùn)算符和表達(dá)式課堂練習(xí)課堂練習(xí)int x , y , z , w ; 輸出結(jié)果?輸出結(jié)果?x = y = z = 1 ;w = +x | +y & +z ;cout x t y t z n ;cout w n ;輸出:輸出: 2 1 1 1數(shù)

29、據(jù)類(lèi)型、運(yùn)算符和表達(dá)式2.5 類(lèi)型轉(zhuǎn)換類(lèi)型轉(zhuǎn)換2.5.1 賦值時(shí)的自動(dòng)類(lèi)型轉(zhuǎn)換賦值時(shí)的自動(dòng)類(lèi)型轉(zhuǎn)換 如果賦值運(yùn)算符兩側(cè)的類(lèi)型不一致,則遵循以下如果賦值運(yùn)算符兩側(cè)的類(lèi)型不一致,則遵循以下幾條原則進(jìn)行類(lèi)型轉(zhuǎn)換后賦值。幾條原則進(jìn)行類(lèi)型轉(zhuǎn)換后賦值。1. 整型變量整型變量實(shí)型數(shù)據(jù)實(shí)型數(shù)據(jù), 舍棄小數(shù)舍棄小數(shù)(無(wú)四舍五入無(wú)四舍五入)。int i=3.96 ; i 為為 32. 實(shí)型變量實(shí)型變量整型數(shù)據(jù)整型數(shù)據(jù), 數(shù)值不變數(shù)值不變, 有效數(shù)位增加。有效數(shù)位增加。float f=23 ; f 為為 23.0 double d=23 ; d 為為 23.0數(shù)據(jù)類(lèi)型、運(yùn)算符和表達(dá)式3整型數(shù)據(jù)之間相互賦值整型數(shù)據(jù)之

30、間相互賦值 整型數(shù)據(jù)類(lèi)型有:整型數(shù)據(jù)類(lèi)型有:signed char unsigned charsigned short unsigned shortsigned int unsigned intsigned long unsigned long各種類(lèi)型的整型數(shù)占用的字節(jié)數(shù)是不同的,其二進(jìn)各種類(lèi)型的整型數(shù)占用的字節(jié)數(shù)是不同的,其二進(jìn)制位數(shù)有長(zhǎng)有短。它們之間相互賦值,其實(shí)就是它制位數(shù)有長(zhǎng)有短。它們之間相互賦值,其實(shí)就是它們內(nèi)存數(shù)據(jù)之間的賦值,分兩種情況。們內(nèi)存數(shù)據(jù)之間的賦值,分兩種情況。下面以下面以 int 型數(shù)據(jù)與型數(shù)據(jù)與 char 型數(shù)據(jù)之間的賦值進(jìn)行說(shuō)明:型數(shù)據(jù)之間的賦值進(jìn)行說(shuō)明:數(shù)據(jù)類(lèi)型、

31、運(yùn)算符和表達(dá)式 將將 int 型變量賦給字符型變量時(shí)型變量賦給字符型變量時(shí) (長(zhǎng)長(zhǎng)短短) 方法:方法:截取低位賦值截取低位賦值例:例:signed char c1=250 ; c1真值為真值為 -6 250 為為int型常數(shù)型常數(shù), 32 位:位:00000000 1111 1010 c1: 1111 1010 數(shù)據(jù)類(lèi)型、運(yùn)算符和表達(dá)式將字符型變量賦給將字符型變量賦給 int 型變量時(shí)型變量時(shí)(短短長(zhǎng)長(zhǎng)),又分成兩種情況:又分成兩種情況: 有符號(hào)的字符型數(shù)據(jù)有符號(hào)的字符型數(shù)據(jù)整型變量整型變量 需符號(hào)位擴(kuò)展需符號(hào)位擴(kuò)展 例:例:char c1=15 ; int i ; i=c1 ; i 為整型變

32、量為整型變量 32 位:位: 00000000 0000 1111 c1(正號(hào)正號(hào)): 0000 1111擴(kuò)展擴(kuò)展正號(hào),結(jié)果正號(hào),結(jié)果i 的的真值為真值為 15 15 為整型常數(shù)為整型常數(shù) 32 位:位: 00000000 0000 1111 數(shù)據(jù)類(lèi)型、運(yùn)算符和表達(dá)式 char c1=250 ; int i ; i=c1 ; i 為整型變量為整型變量 32 位:位: 11111111 1111 1010 250 為整型常數(shù)為整型常數(shù) 32 位:位: 00000000 1111 1010 c1(負(fù)號(hào)負(fù)號(hào)): 1111 1010 擴(kuò)展擴(kuò)展負(fù)號(hào),結(jié)果負(fù)號(hào),結(jié)果 i 的的真值為真值為 - 6數(shù)據(jù)類(lèi)型、

33、運(yùn)算符和表達(dá)式無(wú)符號(hào)的字符型數(shù)據(jù)無(wú)符號(hào)的字符型數(shù)據(jù)整型變量整型變量 前面補(bǔ)前面補(bǔ) 0 unsigned char c1=250 ; int i ; i=c1 ; i 為整型變量為整型變量 32 位:位: 00000000 1111 1010 前面前面補(bǔ)補(bǔ)0,結(jié)果,結(jié)果 i 的的真值為真值為 250250 為整型常數(shù)為整型常數(shù) 32 位:位: 00000000 1111 1010 c1(無(wú)符號(hào)數(shù)無(wú)符號(hào)數(shù)): 1111 1010 數(shù)據(jù)類(lèi)型、運(yùn)算符和表達(dá)式2.5.2 各種類(lèi)型運(yùn)算量混合運(yùn)算時(shí)的自動(dòng)類(lèi)型轉(zhuǎn)換各種類(lèi)型運(yùn)算量混合運(yùn)算時(shí)的自動(dòng)類(lèi)型轉(zhuǎn)換 C 語(yǔ)言的數(shù)值型數(shù)據(jù)語(yǔ)言的數(shù)值型數(shù)據(jù)(常量變量常量變量)包括包括:整型整型int, short int, long int, unsigned int, unsigned short, unsigned long實(shí)型實(shí)型float, double字符型字符型char,

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論