第2講數(shù)據(jù)類型與表達式_第1頁
第2講數(shù)據(jù)類型與表達式_第2頁
第2講數(shù)據(jù)類型與表達式_第3頁
第2講數(shù)據(jù)類型與表達式_第4頁
第2講數(shù)據(jù)類型與表達式_第5頁
已閱讀5頁,還剩43頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、第第2講講 數(shù)據(jù)類型與表達式數(shù)據(jù)類型與表達式學習目標學習目標:認識、理解認識、理解C+表達式及其基本使用表達式及其基本使用l C+的數(shù)據(jù)類型的數(shù)據(jù)類型l 常量常量l 變量變量l C+的運算符的運算符l 算術運算符與算術表達式算術運算符與算術表達式l 賦值運算符與賦值表達式賦值運算符與賦值表達式l 逗號運算符與逗號表達式逗號運算符與逗號表達式n 編程基本目的:編程基本目的:處理數(shù)據(jù)處理數(shù)據(jù)n 處理數(shù)據(jù)的方法處理數(shù)據(jù)的方法l 表示數(shù)據(jù):表示數(shù)據(jù):使用常量與變量使用常量與變量l 處理數(shù)據(jù)的基本方法:處理數(shù)據(jù)的基本方法:使用運算符使用運算符n為了便于數(shù)據(jù)處理為了便于數(shù)據(jù)處理l對數(shù)據(jù)進行分類對數(shù)據(jù)進行分

2、類2.1 C+的數(shù)據(jù)類型的數(shù)據(jù)類型n數(shù)據(jù)類型數(shù)據(jù)類型是指:值的集合以及在這些值上可以進是指:值的集合以及在這些值上可以進行的操作行的操作。注意,在數(shù)據(jù)類型的概念中包含了兩個注意,在數(shù)據(jù)類型的概念中包含了兩個方面:方面:1. 數(shù)據(jù)的取值范圍數(shù)據(jù)的取值范圍2. 數(shù)據(jù)上的操作數(shù)據(jù)上的操作nC+數(shù)據(jù)類型(下圖):數(shù)據(jù)類型(下圖):2.1 C+的數(shù)據(jù)類型的數(shù)據(jù)類型數(shù)據(jù)類型數(shù)據(jù)類型基本類型基本類型整型整型短整型短整型(short int)整型整型(int) 長整型長整型(long int)字符型字符型(char)浮點型浮點型 單精度型單精度型(float)雙精度型雙精度型(double)長雙精度型長雙精度

3、型(long double)布爾型布爾型(bool) -邏輯型邏輯型構(gòu)造類型構(gòu)造類型枚舉類型枚舉類型(enum)數(shù)組類型數(shù)組類型結(jié)構(gòu)體類型結(jié)構(gòu)體類型(struct)共用體類型共用體類型(union)類類型類類型(class)指針類型指針類型引用類型引用類型空類型空類型(void) -無值型無值型n常量的值是不能改變的常量的值是不能改變的,一般從其字面形式即可,一般從其字面形式即可判別是否為常量判別是否為常量(或稱為或稱為“字面常量字面常量”、“字面值字面值”)。n常量區(qū)分類型常量區(qū)分類型, 主要包括兩大類主要包括兩大類:l數(shù)值型常量數(shù)值型常量l字符型常量字符型常量2.2 常量常量 2.2.1

4、什么是常量什么是常量1. 整型常量整型常量(整數(shù))的類型整數(shù))的類型(1) short int型整數(shù),范圍型整數(shù),范圍 -32768+32767(2) long int型整數(shù),范圍型整數(shù),范圍-2147483648+2147483647整型常量的整型常量的3種書寫形式:種書寫形式: n十進制十進制可后加可后加l或或L,則為則為long int型常量型常量如如123L,421L,0L等,等,n 八進制八進制: 以以0開始開始n 十六進制十六進制: 以以0X或或0 x開始開始2.2.2 數(shù)值常量數(shù)值常量(或稱或稱常數(shù)常數(shù))十進制十進制 八進制八進制 十六進十六進0 0 0 x05 05 0 x59

5、 011 0 x0982 0122 0 x52123 0173 0 x7B2. 浮點數(shù)的表示方法浮點數(shù)的表示方法(1) 十進制十進制小數(shù)小數(shù)形式,如形式,如21.456,-7.98 等等l 加加字母字母F或或f,表示單精度表示單精度浮點數(shù),如浮點數(shù),如1234F,-43f,占占4個字節(jié)個字節(jié)。l 加加字母字母L或或l,表示長表示長雙精度數(shù)雙精度數(shù)(long double),占占8個字節(jié)個字節(jié)。(2) 指數(shù)形式指數(shù)形式(即科學計數(shù)法即科學計數(shù)法)0.314159e1 表示表示 0.3141591013.14159e0 表示表示 3159e-2 表示表示 314.1591

6、0-21. 普通的字符常量普通的字符常量l用用單撇號括起來單撇號括起來一個字符。如一個字符。如a#%D2. 轉(zhuǎn)義字符常量轉(zhuǎn)義字符常量l以反斜杠以反斜杠“”開頭的字符序列。如開頭的字符序列。如n 表示表示 “換行換行”符符2.2.3 字符常量字符常量3. 字符數(shù)據(jù)在內(nèi)存中的存儲形式及其使用方法字符數(shù)據(jù)在內(nèi)存中的存儲形式及其使用方法n存儲形式:存儲形式:存貯字符的存貯字符的ASCII代碼。代碼。如如 a97,b 98n視為單字節(jié)整數(shù)視為單字節(jié)整數(shù),如如:l 字符字符 賦給賦給 整型變量整型變量l 整型數(shù)據(jù)整型數(shù)據(jù) 賦給賦給 字符變量字符變量l 可以對字符數(shù)據(jù)進行算術運算可以對字符數(shù)據(jù)進行算術運算例

7、例2.1 將字符賦給整型變量。將字符賦給整型變量。#include using namespace std;int main( ) int i,j; /i和和j是整型變量是整型變量 i=A; /將一個字符常量賦給整型變量將一個字符常量賦給整型變量i j=B; /將一個字符常量賦給整型變量將一個字符常量賦給整型變量j couti jn; /輸出整型變量輸出整型變量i和和j的值,的值,n 是換行符是換行符 return 0;編程查看字編程查看字符符ASCII例例2.2 字符數(shù)據(jù)與整數(shù)進行算術運算。下面程序的字符數(shù)據(jù)與整數(shù)進行算術運算。下面程序的作用是將小寫字母轉(zhuǎn)換為大寫字母。作用是將小寫字母轉(zhuǎn)換為

8、大寫字母。#include using namespace std;int main( ) char c1,c2; c1 = a; c2 = b; c1 = c1 - 32; c2 = c2 - 32; coutc1 c2endl; return 0;轉(zhuǎn)換大小寫轉(zhuǎn)換大小寫4. 字符串常量字符串常量n形式形式: 用雙撇號括起來的部分用雙撇號括起來的部分就是字符串常量就是字符串常量l如如abcHello!a+bLiping My name is Jones n 4. 字符串常量字符串常量n存貯方式存貯方式連續(xù)字節(jié)存貯連續(xù)字節(jié)存貯,以以0結(jié)束結(jié)束l例如例如, abc在內(nèi)存中占在內(nèi)存中占4個字節(jié)個字節(jié)

9、(而不是而不是3個字節(jié)個字節(jié))n注意注意: 區(qū)別區(qū)別l字符串長度字符串長度: 字符個數(shù)字符個數(shù)l字符串存貯容量字符串存貯容量: 字符個數(shù)字符個數(shù)+ 0, 即多一個字節(jié)即多一個字節(jié)l如如 coutabcendl; 輸出輸出3個字符個字符abc,而不包括而不包括0n字符串常量與字符區(qū)別字符串常量與字符區(qū)別注意:注意: a和和a代表不同的含義,代表不同的含義,ua 是字符串常量,占兩個字節(jié)是字符串常量,占兩個字節(jié)ua 是字符常量,占是字符常量,占1個字節(jié)個字節(jié)l例如:判斷以下程序片段對錯:例如:判斷以下程序片段對錯: char c; /定義一個字符變量定義一個字符變量c=a; /正確正確c=a; /

10、錯誤錯誤,c只能容納一個字符只能容納一個字符為了編程和閱讀的方便為了編程和閱讀的方便,在,在C+程序設計中,常用程序設計中,常用一個符號名代表一個常量,稱為一個符號名代表一個常量,稱為符號常量符號常量,即以標,即以標識符形式出現(xiàn)的常量。識符形式出現(xiàn)的常量。l例例2.3 符號常量的使用。符號常量的使用。 #include using namespace std;#define PRICE 30 /注意這不是語句,末尾不要加分號注意這不是語句,末尾不要加分號int main ( ) int num,total; num=10; total=num * PRICE; couttotal=totale

11、ndl; return 0; 2.2.4 符號常量符號常量定義定義宏常量宏常量n變量:變量:是指在程序運行期間其值可以改變的量是指在程序運行期間其值可以改變的量n理解變量理解變量:l變量表示內(nèi)存中的某個變量表示內(nèi)存中的某個存儲單元存儲單元l變量名變量名:標識該存儲單元:標識該存儲單元l變量值變量值:在該存儲單元中存放變量的值:在該存儲單元中存放變量的值圖圖2.6 2.3 變量變量 2.3.1 什么是變量什么是變量n標識符(標識符(identifier):用來標識變量、符號常量、:用來標識變量、符號常量、函數(shù)、數(shù)組、類型等函數(shù)、數(shù)組、類型等實體名字實體名字的有效字符序列的有效字符序列。l標識符只

12、能由字母、數(shù)字和下劃線標識符只能由字母、數(shù)字和下劃線3種字符組成種字符組成,且第且第1個字符必須為字母或下劃線,一般不超過個字符必須為字母或下劃線,一般不超過32個字符個字符l區(qū)分大寫和小寫字母區(qū)分大寫和小寫字母l不能與關鍵字不能與關鍵字、系統(tǒng)函數(shù)名和類名相同、系統(tǒng)函數(shù)名和類名相同2.3.2 變量名規(guī)則變量名規(guī)則n合法變量名示例合法變量名示例: myAge myWeight y2000 _t s2i bookTitleBookTitle2.3.2 變量名規(guī)則變量名規(guī)則n不合法變量名示例不合法變量名示例:40pigs 不能以數(shù)字開頭不能以數(shù)字開頭Mymoney 不能出現(xiàn)不能出現(xiàn)空格空格Lengt

13、h-10 不能出現(xiàn)不能出現(xiàn)連字號連字號myhotmail 不能出現(xiàn)不能出現(xiàn)符。符。int 是保留字,由系統(tǒng)使用,程序是保留字,由系統(tǒng)使用,程序 員不能再重復定義該標識符員不能再重復定義該標識符2.3.2 變量名規(guī)則變量名規(guī)則l先定義,后使用先定義,后使用l定義變量的一般形式定義變量的一般形式 變量類型變量類型 變量名表列;變量名表列;如如 float a,b,c,d,e; 2.3.3 定義變量定義變量l如果對變量未賦初值,則該變量的初值是一個不如果對變量未賦初值,則該變量的初值是一個不可預測的值??深A測的值。l形式:形式:在定義變量時賦予初值(稱為在定義變量時賦予初值(稱為變量初始變量初始化)

14、化)。如。如 float a=3, b=5.78*3.5, c=2*sin(2.0);l效果:效果:初始化不是在編譯階段完成的,而是在程序運行初始化不是在編譯階段完成的,而是在程序運行時完成賦值,相當于執(zhí)行一個賦值語句。時完成賦值,相當于執(zhí)行一個賦值語句。如,如, int a=3;相當于以下兩個語句相當于以下兩個語句 : int a; a=3;2.3.4 為變量賦初值為變量賦初值 l定義形式定義形式:在定義變量時,加上關鍵字:在定義變量時,加上關鍵字const,則則變量的值在程序運行期間不能改變,這種變量稱為變量的值在程序運行期間不能改變,這種變量稱為常變量常變量。l例如例如 const in

15、t a=3;l注意:注意:u在定義常變量時必須同時指定初值。在定義常變量時必須同時指定初值。u常變量不能出現(xiàn)在賦值號的左邊。例如常變量不能出現(xiàn)在賦值號的左邊。例如 const int a; a=3; /常變量不能被賦值常變量不能被賦值2.3.5 常變量常變量常變量與符號變量區(qū)別常變量與符號變量區(qū)別lC+建議使用常變量,不使用符號常量建議使用常變量,不使用符號常量u符號常量(用符號常量(用#define命令定義)只是用一個命令定義)只是用一個符號代替一個字符串,在預編譯時進行替換符號代替一個字符串,在預編譯時進行替換u常變量具有變量的特征,它具有類型常變量具有變量的特征,它具有類型,在內(nèi),在內(nèi)存

16、中存在著以它命名的存儲單元。但是,存中存在著以它命名的存儲單元。但是,常變常變量有一個限制:量有一個限制: 存儲單元中的值不允許變化,存儲單元中的值不允許變化,即常變量可以稱為即常變量可以稱為只讀變量只讀變量(read-only-variable)。C+的運算符十分豐富,使得的運算符十分豐富,使得C+的運算十分靈活的運算十分靈活方便。方便。C+提供了以下運算符:提供了以下運算符:(1) 算術運算符算術運算符 +(加加)-(減減) *(乘乘) /(除除) %(整除求余整除求余)+(自加自加) -(自自減減)(2) 關系運算符關系運算符(大于大于)(小于小于) (等于等于)(大于或等于大于或等于)

17、(小于或等于小于或等于)!(不等于不等于)2.4 C+的運算符的運算符() 邏輯運算符邏輯運算符 (邏輯與邏輯與) |(邏輯或邏輯或) !(邏輯非邏輯非)() 位運算符位運算符 (按位右移按位右移) (按位與按位與) |(按位或按位或) (按位異或按位異或) (按位取反按位取反)() 賦值運算符賦值運算符 (及其擴展賦值運算符及其擴展賦值運算符)() 條件運算符條件運算符 (?:)() 逗號運算符逗號運算符 (,)() 指針運算符指針運算符 (*)(9) 引用運算符和地址運算符引用運算符和地址運算符 ()(10) 求字節(jié)數(shù)運算符()求字節(jié)數(shù)運算符()(11) 強制類型轉(zhuǎn)換運算符(強制類型轉(zhuǎn)換運

18、算符( (類型類型) 或類型或類型( ))(12) 成員運算符成員運算符 (.)(13) 指向成員的運算符指向成員的運算符 (-)(14) 下標運算符下標運算符 ( )(15) 其他其他 (如函數(shù)調(diào)用運算符()(如函數(shù)調(diào)用運算符()l本章主要介紹本章主要介紹:l算術運算符與算術表達式算術運算符與算術表達式l賦值運算符與賦值表達式賦值運算符與賦值表達式l逗號運算符與逗號表達式逗號運算符與逗號表達式(加法運算符,或正值運算符。如(加法運算符,或正值運算符。如3+5,+3)(減法運算符,或負值運算符。如(減法運算符,或負值運算符。如5-2,-3)* (乘法運算符。如乘法運算符。如3*5)(除法運算符

19、。如(除法運算符。如5/3)(模運算符,或稱求余運算符,兩側(cè)均應為整(模運算符,或稱求余運算符,兩側(cè)均應為整型數(shù)據(jù),如的值為)。型數(shù)據(jù),如的值為)。2.5 算術運算符與算術表達式算術運算符與算術表達式 2.5.1 基本的算術運算符基本的算術運算符注意注意:l兩個整數(shù)相除的結(jié)果為整數(shù)兩個整數(shù)相除的結(jié)果為整數(shù),如,如5/3的結(jié)果值為的結(jié)果值為1,舍去小數(shù)部分。舍去小數(shù)部分。l如果參加如果參加+, -, *, / 運算的兩個數(shù)中有一個數(shù)為運算的兩個數(shù)中有一個數(shù)為float型數(shù)據(jù)型數(shù)據(jù),則運算的結(jié)果是,則運算的結(jié)果是double型,因為型,因為C+在運在運算時對所有算時對所有float型數(shù)據(jù)都按型數(shù)據(jù)

20、都按double型數(shù)據(jù)處理。型數(shù)據(jù)處理。l算術表達式算術表達式:用算術運算符和括號將運算對象(也用算術運算符和括號將運算對象(也稱操作數(shù))連接起來的、符合稱操作數(shù))連接起來的、符合C+語法規(guī)則的式子。語法規(guī)則的式子。運算對象包括常量、變量、函數(shù)等。如:運算對象包括常量、變量、函數(shù)等。如: a*b/c-1.5+al運算符的優(yōu)先級:運算符的優(yōu)先級:在求解表達式時,先按運算符在求解表達式時,先按運算符的優(yōu)先級別高低次序執(zhí)行,如先乘除后加減:的優(yōu)先級別高低次序執(zhí)行,如先乘除后加減:a-b*cl結(jié)合性:結(jié)合性:如果在一個運算對象兩側(cè)的運算符的優(yōu)如果在一個運算對象兩側(cè)的運算符的優(yōu)先級別相同,如先級別相同,

21、如a-b+c,則按規(guī)定的則按規(guī)定的“結(jié)合方向結(jié)合方向”(左結(jié)合、右結(jié)合)(左結(jié)合、右結(jié)合)處理。處理。2.5.2 算術表達式和運算符的優(yōu)先級與結(jié)合性算術表達式和運算符的優(yōu)先級與結(jié)合性在計算表達式時在計算表達式時,若操作數(shù)的類型不同,如若操作數(shù)的類型不同,如10 + a + 1.5 - 8765.1234*b則則, 不同類型的數(shù)據(jù)要先轉(zhuǎn)換成同一類型不同類型的數(shù)據(jù)要先轉(zhuǎn)換成同一類型,然后進,然后進行運算。轉(zhuǎn)換的規(guī)則按圖所示行運算。轉(zhuǎn)換的規(guī)則按圖所示:2.5.3 表達式中各類數(shù)值型數(shù)據(jù)間的混合運算表達式中各類數(shù)值型數(shù)據(jù)間的混合運算示例示例:假設已指定為整型變量,為假設已指定為整型變量,為float變

22、量,變量,為為double型變量,為型變量,為long型,有下面表達式:型,有下面表達式: 10+a+i*f-d/e其運算次序為:其運算次序為: 進行進行10+a的運算,先將的運算,先將轉(zhuǎn)換成整數(shù)轉(zhuǎn)換成整數(shù)97,運算結(jié)果為,運算結(jié)果為107進行進行 i*f 的運算。先將的運算。先將i與與f都轉(zhuǎn)換成都轉(zhuǎn)換成double型,運算結(jié)果型,運算結(jié)果為為double型。型。整數(shù)整數(shù)107與與i*f的積相加。先將整數(shù)的積相加。先將整數(shù)107轉(zhuǎn)換成雙精度數(shù),轉(zhuǎn)換成雙精度數(shù),結(jié)果為結(jié)果為double型。型。將變量將變量e轉(zhuǎn)換成轉(zhuǎn)換成double型,型,d/e結(jié)果為結(jié)果為double型。型。將將10+a+i*f

23、的結(jié)果與的結(jié)果與d/e的商相減,結(jié)果為的商相減,結(jié)果為double型。型。上述的類型轉(zhuǎn)換是由系統(tǒng)自動進行的。上述的類型轉(zhuǎn)換是由系統(tǒng)自動進行的。l自增自增(+)和自減和自減(-)運算符的作用是運算符的作用是使變量的值增使變量的值增1或減或減12.5.4 自增和自減運算符自增和自減運算符l+ 增增1運算運算。若有。若有 int x=100,y;y = +x; /y=101, x=101 作為表達式作為表達式 /作為表達式,作為表達式,(+x)返回返回x增增1之后的值之后的值y = x+; /y=100, x=101 /作為表達式,作為表達式,(x+)返回返回x增增1之前的值之前的值l- 減減1運算

24、運算。如。如若有若有 int x=100,y;y = -x; /y=99, x=99y = x-; /y=100, x=99除自動類型轉(zhuǎn)換外,也可以除自動類型轉(zhuǎn)換外,也可以利用強制類型轉(zhuǎn)換運算利用強制類型轉(zhuǎn)換運算符將一個表達式轉(zhuǎn)換成所需類型符將一個表達式轉(zhuǎn)換成所需類型。l形式一:形式一: (double) (將(將a轉(zhuǎn)換成轉(zhuǎn)換成double類型)類型) (int)()(x+y) (將將x+y的值轉(zhuǎn)換成整型)的值轉(zhuǎn)換成整型) (float)(5%3) (將將5%3的值轉(zhuǎn)換成的值轉(zhuǎn)換成float型)型)l形式二:形式二:int(x) 或或 int(x+y)2.5.5 強制類型轉(zhuǎn)換運算符強制類型轉(zhuǎn)換

25、運算符例例2.4 強制類型轉(zhuǎn)換。強制類型轉(zhuǎn)換。#include using namespace std;int main( ) float x; int i; x=3.6; i=(int)x; coutx=x,i= iendl; return 0;強制類型轉(zhuǎn)強制類型轉(zhuǎn)換換l賦值符號賦值符號“”就是賦值運算符,它的作用是將就是賦值運算符,它的作用是將一個數(shù)據(jù)(表達式)賦給一個變量。一個數(shù)據(jù)(表達式)賦給一個變量。l例如例如 a=3; a=3*2;/效果:執(zhí)行一次賦值操作(或稱賦值運算)。效果:執(zhí)行一次賦值操作(或稱賦值運算)。/把常量把常量3賦給變量賦給變量a2.6 賦值運算符與賦值表達式賦值運

26、算符與賦值表達式 2.6.1 賦值運算符賦值運算符如果賦值運算符兩側(cè)的類型不一致,但都是數(shù)值型如果賦值運算符兩側(cè)的類型不一致,但都是數(shù)值型或字符型時,在賦值時會自動進行類型轉(zhuǎn)換?;蜃址蜁r,在賦值時會自動進行類型轉(zhuǎn)換。(1) 將將浮點型浮點型數(shù)據(jù)(包括單、雙精度)賦給數(shù)據(jù)(包括單、雙精度)賦給整型整型變變量時,量時,舍棄其小數(shù)部分。舍棄其小數(shù)部分。(2) 將將整型整型數(shù)據(jù)賦給數(shù)據(jù)賦給浮點浮點型變量時,型變量時,數(shù)值不變數(shù)值不變,但,但以指數(shù)形式存儲到變量中。以指數(shù)形式存儲到變量中。(3) 將一個將一個double型數(shù)據(jù)賦給型數(shù)據(jù)賦給float變量時,要注意變量時,要注意數(shù)值范圍不能溢出。數(shù)值范

27、圍不能溢出。(4) 字符型字符型數(shù)據(jù)賦給數(shù)據(jù)賦給整型整型變量,將字符的變量,將字符的ASCII碼碼賦給整型變量。賦給整型變量。2.6.2 賦值過程中的類型轉(zhuǎn)換賦值過程中的類型轉(zhuǎn)換(5) 將一個將一個int、short或或long型數(shù)據(jù)賦給一個型數(shù)據(jù)賦給一個char型型變量,只將其低變量,只將其低8位原封不動地送到位原封不動地送到char型變量型變量(發(fā)生截斷發(fā)生截斷)。例如)。例如short int i=289;char c;c=i; /將一個將一個int型數(shù)據(jù)賦給一個型數(shù)據(jù)賦給一個char型變量型變量效果如下效果如下:假定一個:假定一個int型數(shù)據(jù)占兩個字節(jié)型數(shù)據(jù)占兩個字節(jié)(16位位)(6)

28、 將將signed(有符號有符號)型數(shù)據(jù)賦給長度相同的型數(shù)據(jù)賦給長度相同的unsigned(無符號無符號)型變量,將存儲單元內(nèi)容原樣照型變量,將存儲單元內(nèi)容原樣照搬(連原有的符號位也作為數(shù)值一起傳送)。搬(連原有的符號位也作為數(shù)值一起傳送)。例例2.5 將有符號數(shù)據(jù)傳送給無符號變量。將有符號數(shù)據(jù)傳送給無符號變量。#include using namespace std;int main( ) unsigned short a; short int b=-1; a=b; couta=aendl; return 0;轉(zhuǎn)為轉(zhuǎn)為無符號無符號數(shù)數(shù)運行結(jié)果為運行結(jié)果為65535賦給賦給b的值是的值是-1,

29、怎么會得到,怎么會得到65535呢?請看圖呢?請看圖2.9所所示的賦值情況。示的賦值情況。-1的補碼形式為的補碼形式為1111111111111111(即全部即全部16個二進個二進制位均為制位均為1),將它傳送給,將它傳送給a,而而a是無符號型變量,是無符號型變量,16個位全個位全1是十進制的是十進制的65535。如果。如果b為正值,且在為正值,且在032767之間,則賦值后數(shù)值不變。之間,則賦值后數(shù)值不變。-1變變65535l形式:形式:在賦值符在賦值符“”之前加上其他運算符,可之前加上其他運算符,可以構(gòu)成復合賦值運算符。如:以構(gòu)成復合賦值運算符。如: a+=3 等價于等價于 a=a+3 x

30、*=y+8 等價于等價于 x=x*(y+8) x%=3 等價于等價于 x=x%3l凡是二元(二目)運算符,都可以與賦值符一起組合成復凡是二元(二目)運算符,都可以與賦值符一起組合成復合賦值符。合賦值符。如:如:,*,&,|l用途:用途:l為了簡化程序,使程序精煉為了簡化程序,使程序精煉l為了提高編譯效率為了提高編譯效率2.6.3 復合賦值運算符復合賦值運算符l定義:定義:由賦值運算符將一個變量和一個表達式連由賦值運算符將一個變量和一個表達式連接起來的式子稱為接起來的式子稱為“賦值表達式賦值表達式”。形式為:。形式為: 如:如: 5+3*b;l運算過程運算過程:先求右側(cè):先求右側(cè)“表達式

31、表達式”的值,然后賦給的值,然后賦給左側(cè)變量。左側(cè)變量。2.6.4 賦值表達式賦值表達式n左值與右值概念左值與右值概念l“左值左值”(left value,簡寫為簡寫為lvalue):出現(xiàn)在賦出現(xiàn)在賦值運算符左側(cè)的標識符值運算符左側(cè)的標識符。一般為變量。一般為變量。l“右值右值”(right value,簡寫為簡寫為rvalue):出現(xiàn)出現(xiàn)在賦值運算符右側(cè)的表達式。在賦值運算符右側(cè)的表達式。 5+3*b;2.6.4 賦值表達式賦值表達式左值左值右值右值n賦值表達式也是表達式賦值表達式也是表達式l其值是賦值后的左值其值是賦值后的左值l賦值運算符具有賦值運算符具有右結(jié)合右結(jié)合性性任意表達式有值!任意表達式有值!如:如:a=b=c=5 /表達式值為表達式值為5,a,b,c值均為值均為5)a=5+(c=6) /表達

溫馨提示

  • 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論