




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
會計(jì)學(xué)1c程序設(shè)計(jì)第三章(一)數(shù)據(jù)類型概述(二)常量與變量(三)整型數(shù)據(jù)(四)實(shí)型數(shù)據(jù)(五)字符型數(shù)據(jù)
(六)各類數(shù)值型數(shù)據(jù)間的混合運(yùn)算返回C的數(shù)據(jù)類型第1頁/共42頁(一)C的數(shù)據(jù)類型
C語言的數(shù)據(jù)結(jié)構(gòu)是以數(shù)據(jù)類型形式出現(xiàn)的。C的數(shù)據(jù)類型如下:數(shù)據(jù)類型基本類型整型字符型實(shí)型(浮點(diǎn)型)單精度型雙精度型枚舉類型構(gòu)造類型數(shù)組類型結(jié)構(gòu)體類型共用體類型指針類型空類型返回第2頁/共42頁(二)常量與變量1.常量和符號常量常量:在程序運(yùn)行過程中,其值不能被改變的量。常量區(qū)分為不同的類型:如:整型常量(12、-3)、實(shí)型常量(4.6、-1.23)、字符常量(‘a(chǎn)’、‘d’)。符號常量:用一個標(biāo)識符代表一個常量,即標(biāo)識符形式的常量。例3.1符號常量的使用。
#definePRICE30main(){intnum,total;
num=10;total=num*PRICE;printf(“total=%d”,total);}第3頁/共42頁(1)程序中用#define命令行定義PRICE為30,此后凡在本文件中出現(xiàn)的PRICE都代表30,可以和常量一樣進(jìn)行運(yùn)算。
(2)符號常量不同于變量,它的值在其作用域內(nèi)不能改變,也不能再被賦值。如在本例中再用以下賦值語句給PRICE賦值是錯誤的:PRICE=40;(3)
習(xí)慣上,符號常量名用大寫,變量名用小寫,以示區(qū)別。上述程序的說明如下:使用符號常量的好處:(1)含義清楚。如:sum=15*30*23.5*43;在檢查程序時搞不清各個常數(shù)究竟代表什么。應(yīng)盡量使用“見名知意”的變量名和符號常量。(2)在需要改變一個常量時能做到“一改全改”。如:#definePRICE35在程序中所有以PRICE代表的價格就會一律自動全改為35。第4頁/共42頁2.變量變量:其值可以改變的量。一個變量應(yīng)該有一個名字,在內(nèi)存中占據(jù)一定的存儲單元。在該存儲單元中存放變量的值。3變量值存儲單元a變量名
見右圖:變量名實(shí)際上是一個符號地址,在對程序編譯連接時由系統(tǒng)給每一個變量名分配一個內(nèi)存地址。在程序中從變量中取值,實(shí)際上是通過變量名找到相應(yīng)的內(nèi)存地址,從其存儲單元中讀取數(shù)據(jù)。注:區(qū)分變量名和變量值這兩個不同的概念。第5頁/共42頁3.標(biāo)識符:用來標(biāo)識變量名、符號常量名、函數(shù)名、數(shù)組名、類型名、文件名的有效字符序列稱為標(biāo)識符。
C語言規(guī)定標(biāo)識符只能由字母、數(shù)字和下劃線三種字符組成,且第一個字符必須是字母或下劃線。下面列出的是合法的標(biāo)識符,也是合法的變量名:Sum,average,_total,tan,lotus_1,BASIC,li_ling不合法的標(biāo)識符和變量名如右:M.D.John,#33,3D64,a>b(1)大寫字母和小寫字母被認(rèn)為是兩個不同的字符。(2)變量名的長度不要超過8個字符。TurboC允許32個字符。(3)所有用到的變量名都要“先定義,后使用”,特別指出每一個變量各自屬于什么類型。對于變量現(xiàn)說明如下:返回第6頁/共42頁(三)整型數(shù)據(jù)1.整型常量的表示方法整型常量即整常數(shù)。C整常數(shù)可用以下三種形式表示:(1)十進(jìn)制整數(shù)。如123,-456,0。(2)八進(jìn)制整數(shù)。以0開頭的數(shù)是八進(jìn)制數(shù)。如:0123表示八進(jìn)制數(shù)123,即(123)8,其值為:1×82+2×81
+3×80
,等于十進(jìn)制數(shù)83。(3)十六進(jìn)制整數(shù)。以0x或0X開頭的數(shù)是十六進(jìn)制數(shù)。如:0x123,代表十六進(jìn)制數(shù)123第7頁/共42頁2.整型變量(1)整型數(shù)據(jù)在內(nèi)存中的存放形式
數(shù)據(jù)在內(nèi)存中是以二進(jìn)制形式存放的。如果定義了一個整型變量i:
inti;/*定義為整型變量*/i=10;/*給i賦以整數(shù)10*/
十進(jìn)制數(shù)10的二進(jìn)制形式為1010,在C編譯系統(tǒng)中,每一個整型變量在內(nèi)存中占2個字節(jié)。如下所示:i10(a)數(shù)據(jù)存放的示意圖i0000000000001010(b)數(shù)據(jù)在內(nèi)存中實(shí)際存放的情況第8頁/共42頁實(shí)際上,數(shù)值是以補(bǔ)碼(complement)表示的。一個正數(shù)的補(bǔ)碼和其原碼的形式相同。下圖就是用補(bǔ)碼形式表示的。如果數(shù)值是負(fù)的,在內(nèi)存中如何用補(bǔ)碼形式表示呢?求負(fù)數(shù)補(bǔ)碼的方法是:將該數(shù)的絕對值的二進(jìn)制形式,按位取反再加1。例如:求-10的補(bǔ)碼:10的原碼0000000000001010取反1111111111110101再加11111111111110110得-10的補(bǔ)碼第9頁/共42頁(2)整型變量的分類可以根據(jù)數(shù)值的范圍將變量定義為基本整型、短整型或長整型。因此有以下三類整型變量:①基本整型,以int表示。②短整型,以shortint表示,或以short表示。③長整型,以longint表示,或以long表示。歸納起來,有以下6種整型變量。即:取值范圍字節(jié)數(shù)
有符號基本整型
[signed]int-32768~327672
無符號基本整型
unsignedint0~655352
有符號短整型
[signed]short[int]-32768~327672
無符號短整型
unsignedshort[int]0~655352
有符號長整型
[signed]long[int]-2147483648~21474836474
無符號長整型
unsignedlong[int]0~42949672954第10頁/共42頁如果不指定unsigned或指定signed,則存儲單元中最高位代表符號(0為正,1為負(fù))。如果指定unsigned,為無符號型,存儲單元中全部二進(jìn)制位(bit)用作存放數(shù)本身,而不包括符號。無符號型變量只能存放不帶符號的整數(shù),如123、4687等,而不能存放負(fù)數(shù)。如果在程序中定義a和b兩個變量:inta;unsignedintb;則變量a的數(shù)值范圍為-32768~32767。而變量b的數(shù)值范圍為0~65535。第11頁/共42頁(3)整型變量的定義對變量的定義,一般是放在一個函數(shù)的聲明部分。例3.2:整型變量的定義與使用:main(){inta,b,c,d;/*指定a、b、c、d為整型變量*/
unsignedu;/*指定u為無符號整型變量*/a=12;b=-24;u=10;c=a+u;d=b+u;printf(“a+u=%d,b+u=%d\n”,c,d);}運(yùn)行結(jié)果為:a+u=22;b+u=-14可以看到不同種類的整型數(shù)據(jù)可以進(jìn)行算術(shù)運(yùn)算。第12頁/共42頁(4)整型數(shù)據(jù)的溢出一個int型變量的最大值允許值為32767,如果再加1,會出現(xiàn)什么情況?例3.3整型數(shù)據(jù)的溢出。main(){inta,b;a=32767;b=a+1;運(yùn)行結(jié)果為:32767,-32768printf(“%d,%d”,a,b);}0111111111111111a:1000000000000000b:32767-32768從上圖可以看到:變量a的最高為0,后15位全為1。加1后變成第1位為1,后面15位全為0。而它是-32768的補(bǔ)碼形式,所以輸出變量b的值為-32768。第13頁/共42頁注:一個int變量只能容納-32768~32767范圍內(nèi)的數(shù),無法表示大于32767的數(shù)。遇此情況就發(fā)生“溢出”,但運(yùn)行時并不報(bào)錯。它好像汽車的里程表一樣,達(dá)到最大值以后,又從最小值開始計(jì)數(shù)。所以,32767加1得不到32768,而得到-32768,這與程序編制者的原意不同。因此,在操作時要特別注意,或?qū)⒆兞縝改成long型就可得到預(yù)期的結(jié)果32768。第14頁/共42頁3.整型常量的類型
我們已知整型變量可分為int、shortint、longint和unsignedint、unsignedshort、unsignedlong等類別。那么常量是否也有這些類別?在將一個整型常量賦值給上述幾種類別的整型變量時如何做到類型匹配?請注意以下幾點(diǎn):(1)一個整數(shù),如果其值在-32768~32767范圍內(nèi),認(rèn)為它是int型,它可以賦值給int型和longint
型變量。(2)一個整數(shù),如果其值超過了上述范圍,而在-2147483648~2147483647范圍內(nèi),則認(rèn)為它是長整型,可以將它賦值給一個longint
型變量。(3)一個int
型的常量也同時是一個shortint
型常量,可以賦給int
型或shortint
型變量。(4)一個整常量后面加一個字母u,認(rèn)為是unsignedint
型,如12345u,在內(nèi)存中按unsignedint規(guī)定的方式存放。(5)在一個整常量后面加一個字母l或L,則認(rèn)為是longint
型變量。返回第15頁/共42頁(四)實(shí)型數(shù)據(jù)1.實(shí)型常量的表示方法實(shí)數(shù)(realnumber)又稱浮點(diǎn)數(shù)(floating-pointnumber)。實(shí)數(shù)有兩種表示形式:(1)十進(jìn)制小數(shù)形式。它由數(shù)字和小數(shù)點(diǎn)組成(注意必須有小數(shù)點(diǎn))。如:123.0、.123。(2)指數(shù)形式。注意字母e之前必須有數(shù)字,且e后面的指數(shù)必須為整數(shù)。如:123e3代表123×103
。
“規(guī)范化的指數(shù)形式”:即在字母e之前的小數(shù)部分,小數(shù)點(diǎn)左邊應(yīng)有一位(且只能有一位)非零的數(shù)字。一個實(shí)數(shù)在用指數(shù)形式輸出時,是按規(guī)范化的指數(shù)形式輸出的。第16頁/共42頁實(shí)型數(shù)據(jù)類型比特?cái)?shù)有效數(shù)字?jǐn)?shù)值范圍floatdoublelongdouble32641286~715~1618~1910-38~103810-308~1030810-4932~1049322.實(shí)型變量如右圖:實(shí)數(shù)3.14159在內(nèi)存中的存放形式。系統(tǒng)把一個實(shí)型數(shù)據(jù)分成小數(shù)部分和指數(shù)部分,分別存放。指數(shù)部分采用規(guī)范化的指數(shù)形式。數(shù)符+小數(shù)部分指數(shù)部分.314159×101+.3141591(1)實(shí)型數(shù)據(jù)在內(nèi)存中的存放形式
常用的微機(jī)系統(tǒng)中一個實(shí)型數(shù)據(jù)在內(nèi)存占4個字節(jié)(32位)。與整型數(shù)據(jù)的存儲方式不同,實(shí)型數(shù)據(jù)是按照指數(shù)形式存儲的。(2)實(shí)型變量的分類實(shí)型變量分為單精度(float型)、雙精度(double型)和長雙精度型(longdouble)三類。見下表:(3)實(shí)型數(shù)據(jù)的舍入誤差由于實(shí)型變量是用有限的存儲單元存儲的,因此能提供的有效數(shù)字總是有限的,在有效位以外的數(shù)字將被舍去。由此可能會產(chǎn)生一些誤差。第17頁/共42頁許多C編譯系統(tǒng)將實(shí)型常量作為雙精度來處理,可以將一個實(shí)型常量可以賦給一個float型、double型或longdouble變量。如:floata;a=111111.111;
由于float型變量只能接收7位有效數(shù)字,因此后兩位小數(shù)不起作用。若a改為double型,則能全部接收。若將實(shí)型常量賦給float型變量,其運(yùn)算速度慢,為提高速度,可在常量后加上f或F。
3.實(shí)型常量的類型返回第18頁/共42頁(五)字符型數(shù)據(jù)1.字符常量
C的字符常量是用單引號括起來的一個單字符,如‘a(chǎn)’。除了以上形式的字符常量外,還有一個以“\”開頭的特殊的字符常量(稱為轉(zhuǎn)義字符)。常見的有:字符形式含義ASCII碼\n換行,將當(dāng)前位置移到下一行開頭\t\b\r水平制表(跳到下一個Tab位置)退格,將當(dāng)前位置移到前一列109813回車,將當(dāng)前位置移到本行開頭\f換頁,將當(dāng)前位置移到下頁開頭\\反斜杠,字符“\”\’單引號(撇號)字符\”雙引號字符\ddd1到3位8進(jìn)制數(shù)所代表的字符\xhh1到2位16進(jìn)制數(shù)所代表的字符12923934第19頁/共42頁注意:在顯示屏上最后得到的結(jié)果與上述打印結(jié)果不同。例3.4轉(zhuǎn)義字符的使用。main(){printf(“abc\tde\rf\tg\n”);printf(“h\ti\b\bjk”);}程序運(yùn)行時在打印機(jī)上得到以下結(jié)果:fabcgdehjik第20頁/共42頁2.字符變量字符型變量用來存放字符常量。注:一個字符變量只能放一個字符。一個字符變量在內(nèi)存中占一個字節(jié)例如:charc1,c2;c1=‘a(chǎn)’;c2=‘b’;3.字符數(shù)據(jù)在內(nèi)存中的存儲形式及其使用方法
將一個字符常量放到一個字符變量中,實(shí)際上并不是把該字符本身放到內(nèi)存單元中去,而是將該字符的相應(yīng)的ASCII代碼放到存儲單元中。例如:字符‘a(chǎn)’的ASCII代碼為97,‘b’為98,在內(nèi)存中變量c1、c2的值,見右圖(a)所示;實(shí)際上是以二進(jìn)制形式存放的,見右圖(b)所示。9798(a)c1c20110000101100010(b)第21頁/共42頁例3.5向字符變量賦以整數(shù)。main(){charc1,c2;c1=97;c2=98;printf(“%c%c\n”,c1,c2);printf(“%d%d\n”,c1,c2);}程序運(yùn)行的結(jié)果:ab9798可以看到:字符型數(shù)據(jù)和整型數(shù)據(jù)是通用的。它們既可以用字符形式輸出(用%c),也可以用整數(shù)形式輸出(%d)。注意:字符數(shù)據(jù)只占一個字節(jié),它只能存放0~255范圍內(nèi)的一個整數(shù)。例3.6大小寫字母的轉(zhuǎn)換。main(){charc1,c2;c1=‘a(chǎn)’;c2=‘b’;c1=c1-32;c2=c2-32;printf(“%c%c“,c1,c2);}運(yùn)行結(jié)果為:AB該程序的作用:將兩個小寫字母a和b轉(zhuǎn)換成大寫字母A和B。(從ASCII代碼表中可以看到一個小寫字母比它相應(yīng)的大寫字母的ASCII碼大32。)注意:字符型數(shù)據(jù)與整型數(shù)據(jù)可以互相賦值。舉例:第22頁/共42頁4.字符串常量
字符常量是由一對單引號括起來的單個字符。而字符串常量是由一對雙引號括起來的字符序列。如:“Howdoyoudo”,“CHINA”;都是字符串常量。可以輸出一個字符串,如:printf(“Howdoyoudo”);注:不要將字符常量和字符串常量混淆?!產(chǎn)’是字符常量,“a”是字符串常量,二者不同。例如設(shè)c為字符變量:charc;
則:c=‘a(chǎn)’;正確
c=“a”;錯誤
也就是說不能把一個字符串賦給一個字符變量。
第23頁/共42頁
C規(guī)定:在每一個字符串的結(jié)尾加一個“字符串結(jié)束標(biāo)志”,以便系統(tǒng)據(jù)此判斷字符串是否結(jié)束。C規(guī)定以字符‘\0’作為字符串結(jié)束標(biāo)志。如:“CHINA”,實(shí)際上是在內(nèi)存中是:CHINA\0它的長度不是5個字符,而是6個字符,最后一個字符為‘\0’。但在輸出時不輸出‘\0’。所以字符串“a”,實(shí)際上是包含2個字符:‘a(chǎn)’和‘\0’,因此,把它賦給只能容納一個字符的字符變量c:c=“a”;顯然是不行的。返回第24頁/共42頁(六)各類數(shù)值型數(shù)據(jù)間的混合運(yùn)算整型和實(shí)型數(shù)據(jù)可以混合運(yùn)算,字符型數(shù)據(jù)可以和整型通用,因此,整型、實(shí)型、字符型數(shù)據(jù)間可以混合運(yùn)算。例如:
10+‘a(chǎn)’+1.5-8765.1234*‘b’是合法的。在進(jìn)行運(yùn)算時,不同類型的數(shù)據(jù)要先轉(zhuǎn)換成同一類型(系統(tǒng)自動完成,無需人工干預(yù)),按照下圖進(jìn)行運(yùn)算:
高低intunsignedlongdoublefloatchar,short注意:箭頭方向只表示數(shù)據(jù)類型級別的高低,由低向高轉(zhuǎn)換。不要理解為int型先轉(zhuǎn)換成unsignedint型,再轉(zhuǎn)換成long型,再轉(zhuǎn)成double型。上述的類型轉(zhuǎn)換是由系統(tǒng)自動進(jìn)行的。返回第25頁/共42頁運(yùn)算符和表達(dá)式(一)C運(yùn)算符簡介(二)算術(shù)運(yùn)算符和算術(shù)表達(dá)式(三)賦值運(yùn)算符和賦值表達(dá)式(四)強(qiáng)制類型轉(zhuǎn)換運(yùn)算符(五)逗號運(yùn)算符和逗號表達(dá)式返回第26頁/共42頁(一)C運(yùn)算符簡介:C的運(yùn)算符有以下幾類:1、算術(shù)運(yùn)算符8、指針運(yùn)算符2、關(guān)系運(yùn)算符9、求字節(jié)數(shù)運(yùn)算符3、邏輯運(yùn)算符10、強(qiáng)制類型轉(zhuǎn)換運(yùn)算符4、位運(yùn)算符11、分量運(yùn)算符5、賦值運(yùn)算符12、下標(biāo)運(yùn)算符6、條件運(yùn)算符13、其他7、逗號運(yùn)算符返回第27頁/共42頁1、基本的算術(shù)運(yùn)算符:+(加法運(yùn)算符,或正值運(yùn)算符。如:3+5、+3)-(減法運(yùn)算符,或負(fù)值運(yùn)算符。如:5-2、-3)*(乘法運(yùn)算符。如:3*5)/(除法運(yùn)算符。如:5/3)%(模運(yùn)算符,或稱求余運(yùn)算符,%兩側(cè)均應(yīng)為整型數(shù)據(jù),如:7%4的值為3)需要說明的是:兩個整數(shù)相除的結(jié)果為整數(shù),但是,如果除數(shù)或被除數(shù)中有一個為負(fù)值,則舍入的方向是不固定的。多數(shù)機(jī)器采取“向零取整”的方法,如:-5/3=-1,取整后向零靠攏。(二)算術(shù)運(yùn)算符和算術(shù)表達(dá)式
第28頁/共42頁2、算術(shù)表達(dá)式和運(yùn)算符的優(yōu)先級與結(jié)合性算術(shù)表達(dá)式:用算術(shù)運(yùn)算符和括號將運(yùn)算對象(也稱操作數(shù))連接起來的、符合C語法規(guī)則的式子。運(yùn)算對象包括常量、變量、函數(shù)等。例如,a-b*c是一個合法的C算術(shù)表達(dá)式。
C規(guī)定了各種運(yùn)算符的優(yōu)先級,上述表達(dá)式中,乘號優(yōu)先于減號,因此,相當(dāng)于a-(b*c)。如果在一個運(yùn)算對象兩側(cè)的運(yùn)算符的優(yōu)先級別相同,如:a-b+c,則按規(guī)定的“結(jié)合方向”處理。
C規(guī)定了各種運(yùn)算符的結(jié)合方向(結(jié)合性),算術(shù)運(yùn)算符的結(jié)合方向?yàn)椤白宰笾劣摇?,即先左后右,因此b先與減號結(jié)合,執(zhí)行a-b的運(yùn)算,再執(zhí)行加c的運(yùn)算。第29頁/共42頁3、自增、自減運(yùn)算符作用是使變量的值增1或減1。如:++i;--i;(在使用i之前,先使i的值加(減)1)i++;i--;(在使用i之后,使i的值加(減)1)
如果i的原值等于3,則執(zhí)行下面的賦值語句:(1)、j=++i;(i的值先變成4,再賦給j,j的值為4)(2)、j=i++;(先將i的值3賦給j,j的值為3,然后i變?yōu)?)注意:(1)自增運(yùn)算符(++)和自減運(yùn)算符(--),只能用于變量,而不能用于常量或表達(dá)式。如5++或(a+b)++都是不合法的。(2)++和--結(jié)合方向是“自右至左”。需知:符號運(yùn)算符和“++”運(yùn)算符同優(yōu)先級,其結(jié)合方向也為“自右至左”。注:-(i++)是先用i的原值3加上負(fù)號輸出-3,再對i加1,不要認(rèn)為先加完1后再加負(fù)號,輸出-4,這是不對的。第30頁/共42頁如果i的原值等于3,則:(1)避免出現(xiàn)歧義。如:i+++i+++i++應(yīng)該寫成:i=3;a=i++;b=i++;c=i++;d=a+b+c;(2)不要寫成:i+++j,而應(yīng)寫成:
(i++)+j的形式。(3)不要寫成:printf(“%d,%d”,i,i++);其結(jié)果為:4,3而應(yīng)寫成:j=i++;printf(“%d,%d”,j,i)其結(jié)果為:3,44、有關(guān)表達(dá)式使用中的問題說明:返回第31頁/共42頁1、賦值運(yùn)算符
賦值運(yùn)算符就是“=”,它的作用是將一個數(shù)據(jù)賦給一個變量。如:“a=3”的作用是執(zhí)行一次賦值操作(或稱賦值運(yùn)算)。把常量3賦給變量a。也可以將一個表達(dá)式的值賦給一個變量。(三)賦值運(yùn)算符和賦值表達(dá)式2、變量賦初值程序中常需要對一些變量預(yù)先設(shè)置初值。C語言允許在定義變量的同時使變量初始化。如:inta=3;/*指定a為整型變量,初值為3*/也可以使被定義的變量的一部分賦初值。如inta,b,c=5;/*表示指定a,b,c為整型變量,c的初值為5*/如果要對幾個變量賦予相同的初值,則:inta=3,b=3,c=3;(√)inta=b=c=3;(×)或:inta,b,c;a=b=c=3;第32頁/共42頁3、復(fù)合的賦值運(yùn)算符在賦值符“=”之前加上其他運(yùn)算符,可以構(gòu)成復(fù)合的運(yùn)算符。例如,可以有:a+=3等價于a=a+3x*=y+8等價于x=x*(y+8)(注意:括號的使用)
x%=3等價于x=x%3凡是二元(二目)運(yùn)算符,都可以與賦值符一起組合成復(fù)合賦值符。C語言規(guī)定可以使用10種復(fù)合賦值運(yùn)算符:+=,-=,*=,/=,%=,<<=,>>=,&=,^=,|=,后5種是有關(guān)位運(yùn)算的,將在第12章介紹。第33頁/共42頁(1)將實(shí)型數(shù)據(jù)(包括單、雙精度)賦給整型變量時,舍棄實(shí)數(shù)的小數(shù)部分。(2)將整型數(shù)據(jù)賦給單、雙精度變量時,數(shù)值不變,但以浮點(diǎn)數(shù)形式存儲到變量中。(3)將一個double型數(shù)據(jù)賦給float變量時,截取其前面7位有效數(shù)字,存放到float變量的存儲單元(32位)中。注意:數(shù)值范圍不能溢出。(4)字符型數(shù)據(jù)賦給整型變量時,由于字符只占1個字節(jié),而整型變量為2個字節(jié),因此將字符數(shù)據(jù)(8位)放到整型變量低8位中。有兩種情況:(若字符‘\376’)111111100000000011111110c=‘\376’c=‘\376’111111101111111111111110a、如果所用系統(tǒng)將字符處理為unsignedcharb、如果所用系統(tǒng)將字符處理為signedchar4、類型轉(zhuǎn)換如果賦值運(yùn)算符兩側(cè)的類型不一致,但都是數(shù)值型或字符型時,在賦值時系統(tǒng)會自動進(jìn)行類型轉(zhuǎn)換。第34頁/共42頁(5)將一個int、short、long型數(shù)據(jù)賦給一個char型變量時,只將其低8位原封不動地送到char型變量。(6)將帶符號的整型數(shù)據(jù)int型賦給long型變量時,要進(jìn)行符號擴(kuò)展,將整型的16位送到long型低16位中,如果int型數(shù)據(jù)為正,則高16位補(bǔ)0;反之,則高16位補(bǔ)1。若將一個long型數(shù)據(jù)賦給一個int型變量時,只將long型數(shù)據(jù)中低16位原封不動地送到整型變量中。(7)將unsignedint型數(shù)據(jù)賦給longint型變量時,不存在符號擴(kuò)展問題,只需將高位補(bǔ)0即可。(8)將非unsigned型數(shù)據(jù)賦給長度相同的unsigned型變量,也是原樣照賦(連原有的符號位也作為數(shù)值一起傳送).第35頁/共42頁例3.7有符號數(shù)據(jù)傳送給無符號變量:main(){unsigneda;intb=-1;a=b;printf(“%u”,a);}運(yùn)行結(jié)果為:6553511111111111111111111111111111111ba賦值情況見下圖:如果b為正值,且在0~32767之間,則賦值后數(shù)值不變。總結(jié):不同類型的整型數(shù)據(jù)間的賦值歸根到底就是一條:按存儲單元中的存儲形式直接傳送。第36頁/共42頁5、賦值表達(dá)式由賦值運(yùn)算符將一個變量和一個表達(dá)式連接起來的式子稱為“賦值表達(dá)式”。它的一般形式為:<變量><賦值運(yùn)算符><表達(dá)式>也可以是賦值表達(dá)式如:a=(b=5);賦值表達(dá)式也可以包含復(fù)合的賦值運(yùn)算符。如:a+=a-=a*a如果a的初值為12,此賦值表達(dá)式的求解步驟如下:(1)先進(jìn)行“a-=a*a”的運(yùn)算,它相當(dāng)于a=a-a*a=12-144=-132。(2)再進(jìn)行“a+=-132”的運(yùn)算,相當(dāng)于a=a+(-132)=-132-132=-264。將賦值表達(dá)式作為表達(dá)式的一種,使賦值操作不僅可以出現(xiàn)在賦值語句中,而且可以以表達(dá)式
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年煙廠模擬測試題及答案
- 義齒加工機(jī)操作規(guī)程
- 2025年博圖考試題及答案
- 2025年四季循環(huán)試題分析及答案
- 2025年運(yùn)維高級面試題及答案
- 工業(yè)機(jī)器人1+x復(fù)習(xí)測試卷
- 2025年日本駕駛證理論試題及答案
- 2025年高中ps會考試題及答案
- 2025年動物生物學(xué)試題集及答案
- 2025年兩學(xué)一上試題及答案
- 測量儀器自檢記錄表(全站儀)
- 綠色建筑評價標(biāo)準(zhǔn)及評價方法-gq課件
- 鐵板神數(shù)計(jì)算取數(shù)方法
- 構(gòu)型設(shè)計(jì)制圖習(xí)題集答案(華工)15
- 山體開挖專項(xiàng)方案
- berg平衡評定量表
- 中央空調(diào)維保方案
- 科研成果清單(范本)
- 我是家里的小主人
- 中國高血糖危象診斷與治療指南-
- 《醫(yī)療機(jī)構(gòu)基本標(biāo)準(zhǔn)(試行)》2017版
評論
0/150
提交評論