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頁,還剩53頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、第章數(shù)據(jù)類型與表達(dá)式2.1 C+的數(shù)據(jù)類型2.2 常量2.3 變量2.4 C+的運(yùn)算符2.5 算術(shù)運(yùn)算符與算術(shù)表達(dá)式2.6 賦值運(yùn)算符與賦值表達(dá)式1計(jì)算機(jī)處理的對(duì)象是數(shù)據(jù),而數(shù)據(jù)是以內(nèi)存中的bit的形式存在的,按占bit的不同,分為整數(shù)、浮點(diǎn)數(shù)、字符等類型?!癷nt a,b,sum;”是聲明語句,定義變量a,b和sum為整數(shù)類型變量。語言的數(shù)據(jù)類型包含基本數(shù)據(jù)類型和構(gòu)造數(shù)據(jù)類型。最基本:int(整數(shù)) char (字符) float (實(shí)數(shù))2.1 的數(shù)據(jù)類型2數(shù)據(jù)類型基本類型構(gòu)造類型指針類型引用類型空類型(void)單精度型(float)雙精度型(double)長(zhǎng)雙精度型(long doub

2、le)短整型(short int)整型(int)長(zhǎng)整型(long int)整型字符型(char)浮點(diǎn)型布爾型(bool)枚舉類型(enum)數(shù)組類型結(jié)構(gòu)體類型(struct)共用體類型(union)類類型(class)布爾型就是邏輯型,空類型就是無值型3類型類型標(biāo)識(shí) 字節(jié)數(shù)值范圍整型 signed int 4 -2147483648 +2147483647無符號(hào)整型 unsigned int 4 0 4294967295短整型 short int 2 -32768 +32767無符號(hào)短整型 unsigned short int 2 0 65535長(zhǎng)整型 long int 4 -21474836

3、48 +2147483647無符號(hào)長(zhǎng)整型 unsigned long int 4 0 4294967295字符型 signde char 1 -128 +127無符號(hào)字符型 unsigned char 1 0 255單精度型 float 4 3.410-38 3.41038雙精度型 double 8 1.710-308 1.710308長(zhǎng)雙精度型 long double 8 1.710-308 1.710308表2.1 數(shù)值型和字符型數(shù)據(jù)的字節(jié)數(shù)和數(shù)值范圍4說明:(1) 整型數(shù)據(jù)分為長(zhǎng)整型(long int)、一般整型(int)和短整型(short int)。在int前面加long和short

4、分別表示長(zhǎng)整型和短整型。(2) 數(shù)據(jù)的存儲(chǔ)方式為按二進(jìn)制數(shù)形式存儲(chǔ),例如十進(jìn)制整數(shù)85的二進(jìn)制形式為1010101,則在內(nèi)存中的存儲(chǔ)形式如圖2.1所示。(短整型) 圖2.15(3) 在整型符號(hào)int和字符型符號(hào)char的前面,可以加修飾符signed(表示“有符號(hào)”)或unsigned(表示“無符號(hào)”)。如果指定為signed,則存儲(chǔ)單元中的最高位(bit)用來表示數(shù)值的符號(hào)。如果指定為unsigned,則數(shù)值沒有符號(hào),全部二進(jìn)制位都用來表示數(shù)值本身。例如短整型數(shù)據(jù)占兩個(gè)字節(jié) ,見圖2.2。6圖2.2類型類型標(biāo)識(shí) 字節(jié)數(shù)值范圍短整型 short int 2 -32768 +32767無符號(hào)短整

5、型 unsigned short int 2 0 655357(4) 浮點(diǎn)型(又稱實(shí)型)數(shù)據(jù)分為單精度(float)、雙精度(double)和長(zhǎng)雙精度(long double)3種,在Visual C+ 6.0中,對(duì)float分配4個(gè)字節(jié),對(duì)double和long double分配8個(gè)字節(jié)。(5) 表中類型標(biāo)識(shí)符一欄中,方括號(hào) 包含的部分可以省寫,如short和short int等效,unsigned int和unsigned等效。82.2 常量2.2.1 什么是常量常量是在程序中不能被改變的量。常量包括兩大類,即數(shù)值型常量(即常數(shù))和字符型常量。9數(shù)值常量就是通常所說的常數(shù)。1. 整型常量(

6、整數(shù))的類型整型常量與整型數(shù)據(jù)一樣,可以分為int,short int,long int以及unsigned int,unsigned short,unsigned long等類別。2.2.2 數(shù)值常量102. 浮點(diǎn)數(shù)(實(shí)數(shù))的表示方法在程序中,一個(gè)浮點(diǎn)數(shù)可以用兩種不同的方式表示:十進(jìn)制小數(shù)形式。如21.456,-7.98等。(2) 指數(shù)形式(即浮點(diǎn)形式)一個(gè)浮點(diǎn)數(shù)可以寫成指數(shù)形式,如3.14159,在程序中應(yīng)表示為: 0.314159e1 ( 0.314159101 ) ,3.14159e0 (3.14159100 ),31.4159e-1 (31.415910-1 ),用字母e表示其后的數(shù)

7、是以10為底的冪。111. 普通的字符常量用單撇號(hào)括起來的一個(gè)字符就是字符型常量。如a,#,%,D都是合法的字符常量。注意: 字符常量只能包括一個(gè)字符,如AB 是不合法的。字符常量區(qū)分大小寫字母,如A和a是兩個(gè)不同的字符常量。撇號(hào)()是定界符,而不屬于字符常量的一部分。如couta;輸出的是一個(gè)字母“a” 。2.2.3 字符常量122. 轉(zhuǎn)義字符常量C+還允許用一種特殊形式的字符常量,就是以 “”開頭的字符序列。例如,n代表一個(gè)“換行”符。“coutn; ” 將輸出一個(gè)換行,其作用與“coutendl; ” 相同。表2.2中列出的以“”開頭的字符稱為“轉(zhuǎn)義字符”,意思是將反斜杠()后面的字符轉(zhuǎn)

8、換成另外的意義。如n中的“”不代表字母而作為“換行”符。編譯系統(tǒng)在見到“”時(shí),會(huì)接著找它后面的字符把它處理成一個(gè)字符。13表2.2 轉(zhuǎn)義字符及其含義字符形式含義 ASCII代碼a 響鈴 7n 換行,將當(dāng)前位置換到下一行開頭 10t 水平制表(跳到下一個(gè)tab位置) 9b 退格,將當(dāng)前位置移到前一列 8r 回車,將當(dāng)前位置移到本行開頭 13f 換頁,將當(dāng)前位置移到下頁開頭 12v 豎向跳格 11 反斜杠字符“” 92 單引號(hào)字符 39“ 雙引號(hào)字符 340 空字符 0143. 字符數(shù)據(jù)在內(nèi)存中的存儲(chǔ)形式及其使用方法將一個(gè)字符常量存放到內(nèi)存單元時(shí),實(shí)際上是將該字符相應(yīng)的ASCII代碼(見附錄)放到

9、存儲(chǔ)單元中。如果字符變量c1的值為a,c2的值為b,則在變量中存放的是a的ASCII碼97,b 的ASCII碼98,如圖2.4(a)所示,實(shí)際上在內(nèi)存中是以二進(jìn)制形式存放的,如圖2.4(b)所示。圖2.415特別地,在C+中字符型數(shù)據(jù)和整型數(shù)據(jù)之間可以通用。一個(gè)字符數(shù)據(jù)可以賦給一個(gè)整型變量,反之,一個(gè)整型數(shù)據(jù)也可以賦給一個(gè)字符變量。也可以對(duì)字符數(shù)據(jù)進(jìn)行算術(shù)運(yùn)算,此時(shí)相當(dāng)于對(duì)它們的ASCII碼進(jìn)行算術(shù)運(yùn)算。例2.1 將字符賦給整型變量。#include using namespace std;int main( )int i,j; /i和j是整型變量i=A; /將一個(gè)字符常量賦給整型變量ij=B

10、; /將一個(gè)字符常量賦給整型變量jcouti jn; /輸出整型變量i和j的值return 0;16執(zhí)行時(shí)輸出65 66i和j被聲明為整型變量。語句;與語句65;66;等價(jià)。因?yàn)楹偷腁SCII碼分別為65和66.可見:在一定條件下,字符型數(shù)據(jù)和整型數(shù)據(jù)是可以通用的。17例2.2 字符數(shù)據(jù)與整數(shù)進(jìn)行算術(shù)運(yùn)算。#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)換為大寫字母。18運(yùn)行結(jié)果為A Ba的ASCII碼為

11、97,而A的ASCII碼為65,每一個(gè)小寫字母比它相應(yīng)的大寫字母的ASCII代碼大32。a-32得到整數(shù)65,將65存放在c1中,用cout輸出c1(=65)時(shí),由于c1是字符變量,因此輸出字符A。194. 字符串常量用雙撇號(hào)括起來的部分就是字符串常量,如abc,Hello!,a+b,Liping都是字符串常量。字符串常量abc在內(nèi)存中占4個(gè)字節(jié)(而不是3個(gè)字節(jié)),見圖2.5。圖2.5編譯系統(tǒng)會(huì)在字符串最后自動(dòng)加一個(gè)0作為字符串結(jié)束標(biāo)志。20注意: a和a代表不同的含義,a是字符串常量,a 是字符常量。前者占兩個(gè)字節(jié),后者占1個(gè)字節(jié)。請(qǐng)分析下面的程序片段: char c; c=a; ? c=a

12、; ? /定義一個(gè)字符變量/正確/錯(cuò)誤,c只能容納一個(gè)字符?字符串常量abcn包含幾個(gè)字符4個(gè)字符,其中“n”是一個(gè)轉(zhuǎn)義字符。但它在內(nèi)存中占5個(gè)字節(jié)(包括一個(gè)“0”字符) 。21如果希望將“”字符也作為字符串中的一個(gè)字符,則應(yīng)寫為”。abcn,包括5個(gè)字符,即a,b,c,n。如果有以下輸出語句:coutabcnendl;輸出: abc,然后換行。coutI say Thank you!n;?輸出什么輸出什么?輸出: I say Thank you!222.2.4 符號(hào)常量用一個(gè)符號(hào)名代表一個(gè)常量,稱為符號(hào)常量,如Pi,e,g。例2.3 符號(hào)常量的使用。#define PRICE 30 /注意d

13、efine語句末尾不要加分號(hào)int main ( ) int num,total;num=10;total=num * PRICE;couttotal=totalendl;return 0; 23程序運(yùn)行結(jié)果為 total=300使用符號(hào)常量的好處是:(1) 含義清楚: “見名知義”。(2) 在需要改變一個(gè)常量時(shí)能做到“一改全改”。 如#define PRICE 35242.3 變量2.3.1 什么是變量在程序運(yùn)行期間其值可以改變的量稱為變量。變量具有個(gè)基本要素:名字、類型和值。Int a=3;圖2.6252.3.2 變量命名規(guī)則變量名只能由字母、數(shù)字和下劃線3種字符組成,且第一個(gè)字符必須為字

14、母或下劃線。變量名屬于標(biāo)識(shí)符(identifier) ,標(biāo)識(shí)符用來標(biāo)識(shí)變量、符號(hào)常量、函數(shù)、數(shù)組、類型等實(shí)體名字。標(biāo)識(shí)符的名字都必須遵循以上規(guī)則。下面列出的是合法的標(biāo)識(shí)符,也是合法的變量名:sum, average, total, day, month, Student_name, tan, BASIC, li_ling下面是不合法的標(biāo)識(shí)符和變量名:M.D.John, $123, #33, 3G64, Ling li, C+, Zhang-ling, U.S.A.26在命名時(shí)應(yīng)注意以下事項(xiàng):()大寫字母和小寫字母是兩個(gè)不同的字符。因此,sum和SUM是兩個(gè)不同的變量名。()系統(tǒng)規(guī)定的保留字(如

15、main、int、return)不可再作為變量名、函數(shù)名、類型名等其它名字使用。()命名變量應(yīng)盡量做到“見名知義”,這樣有助于記憶,又增加可讀性。()一般用多個(gè)單詞構(gòu)成的名字,常用下劃線來分隔單詞或者中間單詞的第一個(gè)字母用大寫字母。例如,is_byte或isByte,而不要寫成isbyte。272.3.3 定義變量對(duì)所有的變量 ,要“先定義,后使用”。定義變量的一般形式是 變量類型 變量名表列;變量名表列指的是一個(gè)或多個(gè)變量名的序列。如float a,b,c,d,e; 定義a,b,c,d,e為單精度型變量。可以在定義變量時(shí)指定它的初值。如 float a=83.5,b,c=64.5,d=81.

16、2,e; /對(duì)變量a,c,d指定了初值,b和e未指定初值282.3.4 為變量賦初值允許在定義變量時(shí)對(duì)它賦予一個(gè)初值,這稱為變量初始化。初值可以是常量,也可以是一個(gè)有確定值的表達(dá)式。如float a,b=5.78*3.5,c=2*sin(2.0);表示定義了a,b,c為單精度浮點(diǎn)型變量,對(duì)b初始化為5.78*3, 對(duì)c初始化為2*sin(2.0) 。如果對(duì)變量未賦初值,則該變量的初值是一個(gè)不可預(yù)測(cè)的值,即該存儲(chǔ)單元中當(dāng)時(shí)的內(nèi)容是不知道的。(各次運(yùn)行情況可能不同)29int a=3;相當(dāng)于以下兩個(gè)語句 :int a; / 指定為整型變量 a=3; / 賦值語句,將賦給對(duì)多個(gè)變量賦予同一初值,必須

17、分別指定,不能寫成float a=b=c=4.5;而應(yīng)寫成 float a=4.5,b=4.5,c=4.5;或float a,b,c=4.5;a=b=c;302.3.5 常變量在定義變量時(shí),如果加上關(guān)鍵字const,則變量的值在程序運(yùn)行期間不能改變,這種變量稱為常變量(constant variable)。例如,const int a=3; /用const來聲明這種變量的值不能改變,指定其值始終為3在定義常變量時(shí)必須同時(shí)對(duì)它初始化(即指定其值),此后它的值不能再改變。常變量不能出現(xiàn)在賦值號(hào)的左邊。例如上面一行不能寫成const int a;a=3; /常變量不能被賦值31必須區(qū)別用#defin

18、e命令定義的符號(hào)常量和用const定義的常變量。區(qū)別不大符號(hào)常量只是用一個(gè)符號(hào)代替一個(gè)字符串,它沒有類型,在內(nèi)存中并不存在存儲(chǔ)單元。而常變量具有變量的特征,它具有類型,在內(nèi)存中存在著以它命名的存儲(chǔ)單元,與一般變量不同是常變量的值不能改變。C+的程序員一般喜歡用const定義常變量。322.4 C+的運(yùn)算符(1) 算術(shù)運(yùn)算符 +(加)-(減) *(乘) /(除) %(整除求余)+(自加) -(自減)(2) 關(guān)系運(yùn)算符(大于)(小于) (等于)(大于或等于)(小于或等于)!(不等于) () 邏輯運(yùn)算符 (邏輯與) |(邏輯或) !(邏輯非)() 位運(yùn)算符 (按位右移) (按位與) |(按位或) (

19、按位異或) (按位取反)() 賦值運(yùn)算符 (及其擴(kuò)展賦值運(yùn)算符)332.5.1 基本的算術(shù)運(yùn)算符 (加 減 乘 除 求余)(加法運(yùn)算符(雙目運(yùn)算符,如2+3),或正值運(yùn)算符(單目運(yùn)算符,如+6)(減法運(yùn)算符(雙目運(yùn)算符,如3-2),或負(fù)值運(yùn)算符(單目運(yùn)算符,如-5)*(乘法運(yùn)算符。如2*3)/ (除法運(yùn)算符。如5/2)(模運(yùn)算符,或稱求余運(yùn)算符,兩側(cè)均應(yīng)為整型數(shù)據(jù),如74的值為3)*、/、都為雙目運(yùn)算符。單目運(yùn)算符的優(yōu)先級(jí)高于雙目運(yùn)算符。2.5 算術(shù)運(yùn)算符與算術(shù)表達(dá)式34求兩個(gè)數(shù)的余數(shù)的公式為:余數(shù)操作數(shù)1操作數(shù)2整商其中,整商是操作數(shù)1除以操作數(shù)2所取的整數(shù)商。例如:5%8 余數(shù)為516%8

20、余數(shù)為037%8余數(shù)為5?-5%3和5%-3的余數(shù)是否相同為什么?-5%3: -5-3(-1)=-2 5%-3: 5-(-3)(-1)=2因?yàn)閱文窟\(yùn)算符的優(yōu)先級(jí)高于雙目運(yùn)算符35兩個(gè)整數(shù)相除的結(jié)果為整數(shù),如5/3的結(jié)果值為1,舍去小數(shù)部分。如果除數(shù)或被除數(shù)中有一個(gè)為負(fù)值,則舍入的方向是不固定的。例如,-5/3在有的C+系統(tǒng)上得到結(jié)果-1,有的C+系統(tǒng)則給出結(jié)果-2。多數(shù)編譯系統(tǒng)采取“向零取整”的方法,即5/3的值等于1,-5/3的值等于-1,取整后向零靠攏。362.5.2 算術(shù)表達(dá)式和運(yùn)算符的優(yōu)先級(jí)與結(jié)合性用算術(shù)運(yùn)算符和運(yùn)算對(duì)象連接起來的、符合C+語法規(guī)則的式子,稱C+算術(shù)表達(dá)式。運(yùn)算對(duì)象包括

21、常量、變量、函數(shù)等。例如,下面是一個(gè)合法的C+算術(shù)表達(dá)式:a*b/c-1.5+aC+語言規(guī)定了運(yùn)算符的優(yōu)先級(jí)和結(jié)合性。在求解表達(dá)式時(shí),按運(yùn)算符的優(yōu)先級(jí)別,高低次序執(zhí)行,例如先乘除后加減。37C+規(guī)定了各種運(yùn)算符的結(jié)合方向(結(jié)合性)算術(shù)運(yùn)算符的結(jié)合方向?yàn)椤白宰笾劣摇保聪茸蠛笥?,因此b先與減號(hào)結(jié)合,執(zhí)行a-b的運(yùn)算,再執(zhí)行加c的運(yùn)算。有些運(yùn)算符的結(jié)合方向?yàn)椤白杂抑磷蟆?,即右結(jié)合性(例如賦值運(yùn)算符)。382.5.3 各類數(shù)值型數(shù)據(jù)間的混合運(yùn)算在表達(dá)式中常遇到不同類型數(shù)據(jù)之間進(jìn)行運(yùn)算,如10+a+1.5-8765.1234*b在進(jìn)行運(yùn)算時(shí),不同類型的數(shù)據(jù)要先轉(zhuǎn)換成同一類型(系統(tǒng)自動(dòng)轉(zhuǎn)換),然后進(jìn)行運(yùn)

22、算。轉(zhuǎn)換的規(guī)則按圖2.7所示。圖2.739假設(shè)已指定為整型變量,為float變量,為double型變量,為long型,有下面表達(dá)式:10+a+i*f-d/e運(yùn)算次序?yàn)椋?進(jìn)行10+a的運(yùn)算,先將轉(zhuǎn)換成整數(shù)97,運(yùn)算結(jié)果為107。進(jìn)行i*f的運(yùn)算。先將i與f都轉(zhuǎn)換成double型,運(yùn)算結(jié)果為double型。整數(shù)107與i*f的積相加。先將整數(shù)107轉(zhuǎn)換成雙精度數(shù)(小數(shù)點(diǎn)后加若干個(gè)0,即107.00000),結(jié)果為double型。將變量e轉(zhuǎn)換成double型,d/e結(jié)果為double型。將10+a+i*f的結(jié)果與d/e的商相減,結(jié)果為double型。上述的類型轉(zhuǎn)換是由系統(tǒng)自動(dòng)進(jìn)行的。402.5.4

23、 自增和自減運(yùn)算符和運(yùn)算符作用于變量有兩種方式:一是前綴方式;二是后綴方式。前綴方式為:():在使用之前,先使的值加,如的原值為,則執(zhí)行后,的值為,表達(dá)式的值也為。例如:int a=1;+a;變量a的值改變?yōu)?,它是a=a+1的值()41后綴運(yùn)算符為:():在使用之后,使的值加,如果的原值為,則執(zhí)行后,的值為,表達(dá)式的值仍為。例如:int b=2;b+;變量的值改變?yōu)椋?,表達(dá)式的值為若有a=b+,則a=2,a=b+ 等價(jià)于a=b ; b=b+1;(所謂后綴)而 a= + b等價(jià)于b=b+1; a=b ; (所謂前綴) 。()42使用和運(yùn)算符應(yīng)注意的事項(xiàng):()和運(yùn)算符只能用于變量,而不能用于常

24、量或表達(dá)式,如或()都是不合法的。()和的結(jié)合方向是“自右至左”,見附錄。而算術(shù)運(yùn)算符的結(jié)合性是“自左至右”。如果有,相當(dāng)于()。43()和運(yùn)算符使用十分靈活,但如果使用不當(dāng),可能會(huì)產(chǎn)生“意想不到”的負(fù)面作用。如int i=3;couti+“ “i+;可能大家都認(rèn)為會(huì)輸出“”,而實(shí)際上輸出的是“”。因?yàn)樵S多編譯系統(tǒng)(包括Visual C+ 6.0和GCC)在處理輸出流時(shí),先按自右向左的順序?qū)Ω鬏敵鲰?xiàng)求值,最先處理的是右邊的,得到應(yīng)輸出的值為,然后自增變成,再處理左邊的,得到應(yīng)輸出的值為,然后自增變成。最后將和輸出。44又如,若的初值為,有以下表達(dá)式:()()()對(duì)該表達(dá)式的值,一般人的習(xí)慣是先

25、求第一個(gè)括號(hào)內(nèi)的值,得到,再實(shí)現(xiàn)的自增,值變?yōu)?,再求第二個(gè)括號(hào)內(nèi)的值,得到這樣,表達(dá)式相當(dāng)于,即12。而實(shí)際上大多數(shù)系統(tǒng)把作為表達(dá)式中所有的值,因此個(gè)相加,得到表達(dá)式的值為。在求出整個(gè)表達(dá)式的值后再實(shí)現(xiàn)自增次,的值變?yōu)椤?5應(yīng)該盡量避免出現(xiàn)這種用法。要遵循安全第一、易于理解的原則。如上面的表達(dá)式,如果編程者希望表達(dá)式的結(jié)果為12,同時(shí)的值為,則可以寫成:i=3;a=i+;b=i+;c=i+;d=a+b+c;執(zhí)行完上述的語句后,的值為12,的值為。46xt2-7.cpp#include using namespace std;int main()int i,j,m,n; i=8; j=10; m

26、=+i+j+; n=(+i)+(+j)+m; coutitjtmtn i= 9 / m= +i +j - m= 19 / j+ - j=11+i - i= 10 / + j - j=12 / n=(+i)+(+j)+m - n=41472.5.5 強(qiáng)制類型轉(zhuǎn)換運(yùn)算符在表達(dá)式運(yùn)算中,不同類型的數(shù)據(jù)會(huì)自動(dòng)地轉(zhuǎn)換類型(由短向長(zhǎng) 的轉(zhuǎn)換)還可以利用強(qiáng)制類型轉(zhuǎn)換運(yùn)算符將一個(gè)表達(dá)式轉(zhuǎn)換成所需類型。例如: (double) (將a轉(zhuǎn)換成double類型) (int)(x+y) (將x+y的值轉(zhuǎn)換成整型)48強(qiáng)制類型轉(zhuǎn)換的一般形式為(類型名)(表達(dá)式)注意: 如果表達(dá)式只是一個(gè)變量,該變量可以不用括號(hào)括起來。

27、 (double) 如果該式 是一個(gè)包含多項(xiàng)的表達(dá)式,則應(yīng)該用括號(hào)括起來。 (int)(x+y) 如果寫成 (int) 則只將轉(zhuǎn)換成整型,然后與相加。也可寫成以下形式: 類型名(表達(dá)式) 如int(x) 或 int(x+y)49例2.4 強(qiáng)制類型轉(zhuǎn)換。#include using namespace std;int main( ) float x; int i; x=3.6; i=(int)x; coutx=x,i= iendl; return 0;運(yùn)行結(jié)果如下:3.6,i=3的類型仍為float型,值仍等于3.6。502.6 賦值運(yùn)算符與賦值表達(dá)式2.6.1 賦值運(yùn)算符 =a=3;a=b+c

28、;2.6.2 賦值過程中的類型轉(zhuǎn)換如果賦值運(yùn)算符兩側(cè)的類型不一致,但都是數(shù)值型或字符型時(shí),在賦值時(shí)會(huì)自動(dòng)進(jìn)行類型轉(zhuǎn)換。51(1) 將浮點(diǎn)型數(shù)據(jù)賦給整型變量時(shí),舍棄其小數(shù)部分。如為整型變量,執(zhí)行“i=3.65”的結(jié)果是使的值為,在內(nèi)存中以整數(shù)形式存儲(chǔ)。(截短)(2) 將整型數(shù)據(jù)賦給浮點(diǎn)型變量時(shí),數(shù)值不變,但以指數(shù)形式存儲(chǔ)到變量中。如將23賦給float型變量f,按單精度指數(shù)形式存儲(chǔ)在f中。 (延長(zhǎng))()將一個(gè)double型數(shù)據(jù)賦給float變量時(shí),要注意數(shù)值范圍不能溢出。如float f;double d=123.456789e100;f=d;就會(huì)出現(xiàn)溢出的問題,因?yàn)槌^了float型的數(shù)據(jù)范圍。52(5) 將一個(gè)int、short或long型數(shù)據(jù)賦給一個(gè)char型變量,只將其低8位原封不動(dòng)地送到char型變量(發(fā)生截?cái)啵?。例如short int i=289;char c;c=i; /將一個(gè)int型數(shù)據(jù)賦給一個(gè)char型變量賦值情況見圖2.8。()

溫馨提示

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