第3章-基本數(shù)據(jù)類型、運算符和表達式_第1頁
第3章-基本數(shù)據(jù)類型、運算符和表達式_第2頁
第3章-基本數(shù)據(jù)類型、運算符和表達式_第3頁
第3章-基本數(shù)據(jù)類型、運算符和表達式_第4頁
第3章-基本數(shù)據(jù)類型、運算符和表達式_第5頁
已閱讀5頁,還剩67頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

第3章-基本數(shù)據(jù)類型、運算符和表達式第一頁,共72頁。3.1計算機中數(shù)的表示計算機的主要功能是處理各種信息,這些信息都必須經(jīng)過數(shù)值編碼后才能在計算機中存儲、處理和傳輸。因為計算機是采用二進制數(shù)值存儲信息和計算數(shù)據(jù)的,即以“0”和“1”兩種代碼進行存儲、計算和傳輸信息,所示各種信息在計算機中都是二進制形式。在計算機內(nèi)部采用二進制數(shù)表示數(shù)據(jù),而不是十進制數(shù)。這主要是因為采用二進制數(shù)具有其他進制所不具備的優(yōu)點:易于表示節(jié)約設(shè)備運算簡單可靠性強第一頁第二頁,共72頁。一個數(shù)據(jù)每個數(shù)字符號的位置不同,它所代表的數(shù)值也不同,這就是經(jīng)常所說的個位、十位、百位、千位、……,一種進位計數(shù)制包含一組數(shù)碼符號和兩個基本因素:一組數(shù)碼用來表示某種數(shù)制的符號。如:1、2、3、A、B?;鶖?shù)數(shù)制所用的數(shù)碼個數(shù),用R表示,稱R進制,其進位規(guī)律是“逢R進一”權(quán)數(shù)碼表示在不同位置上的權(quán)值。在某進位制中,處于不同數(shù)位的數(shù)碼,代表不同的數(shù)值,某一個數(shù)位的數(shù)值是由這位數(shù)碼的值乘以這個位置的固定常數(shù)構(gòu)成,這個固定常數(shù)稱為“位權(quán)”3.1.1各種進制數(shù)的表示

第二頁第三頁,共72頁。⑴十進制數(shù)十進制數(shù)由0、1、2、3、4、5、6、7、8、9等10個不同的符號組成,其基數(shù)為10,權(quán)為10n,十進制數(shù)的運算規(guī)則是逢10進1。⑵二進制數(shù)計算機中的所有數(shù)據(jù)是以二進制形式存儲的,二進制數(shù)的數(shù)碼是用“0”和“1”來表示的,其基數(shù)為2,權(quán)為2n,二進制數(shù)的運算規(guī)則是逢2進1。⑶八進制數(shù)具有8個不同的數(shù)碼符號0、1、2、3、4、5、6、7,其基數(shù)為8,權(quán)為8n,八進制數(shù)的運算規(guī)則是逢8進1。⑷十六進制具有16個不同的數(shù)碼符號0、1、2、3、4、5、6、7、8、9、A、B、C、D、E、F,其基數(shù)為16,權(quán)為16n,十六進制數(shù)的運算規(guī)則是逢16進1。3.1.1各種進制數(shù)的表示

第三頁第四頁,共72頁。B一一二進制,D一一十進制(D可省略),0一一八進制,H一一十六進制3.1.1各種進制數(shù)的表示

第四頁第五頁,共72頁。⑴R進制數(shù)轉(zhuǎn)換為十進制數(shù)

按權(quán)展開法:把一個任意R進制數(shù)轉(zhuǎn)換成十進制數(shù),其十進制數(shù)值為每一位數(shù)字與其位權(quán)之積的和:an……ala0.a-l……am(r)=a*Rn+...+a*r1+a*R0+a*R-l+...a*R-m3.1.2進制轉(zhuǎn)換第五頁第六頁,共72頁。例如:

10101.11B

=1×24+0×23+1×22+0×21+1×20+1×2-1+1×2-2

=16+4+1+0.5+0.25=21.75

6101.2(0)

=6×83+1×82+0×81+1×80+2×8-1

=3137.2525101AH=1×163+0×162+1×161+10×160=41223.1.2進制轉(zhuǎn)換第六頁第七頁,共72頁。⑵十進制數(shù)轉(zhuǎn)換成R進制數(shù)①整數(shù)部分:除以R取余數(shù),直到商為0,得到的余數(shù)即為二進制數(shù)各位的數(shù)碼,余數(shù)從右到左排列。②小數(shù)部分:乘以R取整數(shù),直到小數(shù)部分為0或滿足精度要求為止,將所取得的整 數(shù)從左到右排列,即為其在R進制中的小數(shù)部分數(shù)碼。3.1.2進制轉(zhuǎn)換第七頁第八頁,共72頁。例如,將一個十進制整數(shù)108.375轉(zhuǎn)換為二進制數(shù)。 方法如下:把整數(shù)108反復除以2,直到商為0,所得的余數(shù)(從末位讀起)就是這個數(shù)的二進制表示。簡單地說,就是“除2取余法”。通常我們采用如圖1-1(a)來進行演算。把小數(shù)0.375連續(xù)乘以2,選取進位整數(shù),直到滿足精度要求為止。簡稱“乘2取整法”。通常我們采用如圖1-1(b)來進行演算。3.1.2進制轉(zhuǎn)換第八頁第九頁,共72頁。3.1.2進制轉(zhuǎn)換第九頁第十頁,共72頁。⑶二進制數(shù)與八進制數(shù)之間的轉(zhuǎn)換由于二進制數(shù)和八進制數(shù)之間存在特殊關(guān)系,即81=23,他們之間的對應關(guān)系是八進制 數(shù)的每一位對應二進制數(shù)的三位。①二進制數(shù)轉(zhuǎn)換成八進制數(shù) 二進制數(shù)轉(zhuǎn)換成八進制數(shù)的方法是:先將二進制數(shù)從小數(shù)點開始;整數(shù)部分從右向左3位一組,小數(shù)部分從左向右3位一組,若不足三位用0補足,再轉(zhuǎn)換成八進制數(shù)。3.1.2進制轉(zhuǎn)換第十頁第十一頁,共72頁。例如,將1100101110.1101B轉(zhuǎn)換為八進制數(shù)的方法如圖1-3所示。3.1.2進制轉(zhuǎn)換第十一頁第十二頁,共72頁。②八進制數(shù)轉(zhuǎn)換成二進制數(shù)方法為以小數(shù)點為界,向左或向右每一位八進制數(shù)用相應的三位二進制數(shù)取代,然后將其連在一起即可。若中間位不足3位在前面用0補足。3.1.2進制轉(zhuǎn)換第十二頁第十三頁,共72頁。例如,將3216.42轉(zhuǎn)換為二進制數(shù)的方法如圖1-4所示。3.1.2進制轉(zhuǎn)換第十三頁第十四頁,共72頁。⑷二進制數(shù)與十六進制數(shù)之間的轉(zhuǎn)換①二進制數(shù)轉(zhuǎn)換成十六進制數(shù)二進制數(shù)的每4位剛好對應于十六進制數(shù)的1位(161=24,其轉(zhuǎn)換方法是,將二進制數(shù)從小數(shù)點開始,整數(shù)部分從右向左4位一組:小數(shù)部分從左向右4位一組,不足4位用0補足,每組對應一位十六進制數(shù)即可得到十六進制數(shù)。3.1.2進制轉(zhuǎn)換第十四頁第十五頁,共72頁。例如,將二進制數(shù)11101B轉(zhuǎn)換為十六進制數(shù)如圖1-5所示。3.1.2進制轉(zhuǎn)換第十五頁第十六頁,共72頁。②十六進制數(shù)轉(zhuǎn)換成二進制數(shù)方法為以小數(shù)點為界,向左或向右每一位十六進制數(shù)用相應的四位二進制數(shù)取代,然后將其連在一起即可。3.1.2進制轉(zhuǎn)換第十六頁第十七頁,共72頁。⑴機器數(shù) 計算機中只有二進制數(shù)值,且都是以二進制的形式存儲和運算的。數(shù)的正、負號也是用二進制代碼表示,數(shù)的正負用高位字節(jié)的最高位來表示,用“0”表示正數(shù),“1”表示負數(shù),其余位仍表示數(shù)值。把在機器內(nèi)存的正、負號數(shù)字化的數(shù)稱為機器數(shù)。3.1.3原碼、反碼和補碼機器數(shù)有3種表示方法:原碼、補碼和反碼,是將符號位和數(shù)值位一起編碼,機器數(shù)對應的原來數(shù)值稱為真值。第十七頁第十八頁,共72頁。⑵原碼表示法原碼表示方法中,數(shù)值用絕對值表示,在數(shù)值的最左邊用“0”和“1”分別表示正數(shù)和負數(shù),書寫成[X]原表示X的原碼。在原碼的表示中,有以下兩個特點:①最高位為符號位,正數(shù)為0,負數(shù)為1,其余n-1位是X的絕對值的二進制表示。②0的原碼有兩種表示:[+0]原=00000000,[一0]原=10000000。因此,原碼表示法中,數(shù)值0不是惟一的。3.1.3原碼、反碼和補碼第十八頁第十九頁,共72頁。⑶反碼表示法用[X]反表示X的反碼。在反碼的表示中,有以下特點:①正數(shù)的反碼與原碼相同,負數(shù)的反碼是其絕對值的二進制表示按各位取反(0變1,1變0)所得的表示。②0在反碼表示中也有兩種表示:[+0]反=00000000,[一0]反=11111111,即數(shù)值0不是惟一的。3.1.3原碼、反碼和補碼第十九頁第二十頁,共72頁。⑶補碼表示法用[X]補表示X的補碼。在補碼的表示中,有以下特點:①正數(shù)的補碼與原碼、反碼相同,負數(shù)的反碼是其絕對值的二進制表示按各位取反(0變1,1變0)加1,即為其反碼+1。②0在補碼表示中:[+0]補=[一0]補=00000000,數(shù)值0是惟一的。 由于補碼運算方便,所以在計算機中廣泛使用。3.1.3原碼、反碼和補碼第二十頁第二十一頁,共72頁。如何將一個負數(shù)的二進制補碼數(shù)轉(zhuǎn)換成十進制數(shù)?轉(zhuǎn)換步驟如下:首先將各位取反。將其轉(zhuǎn)換為十進制數(shù),并在前加一負號。對所得到的數(shù)再減1,即得到該數(shù)的十進制數(shù)。3.1.3原碼、反碼和補碼第二十一頁第二十二頁,共72頁。3.2C語言的基本數(shù)據(jù)類型C數(shù)據(jù)類型指針類型空類型void定義類型typedef構(gòu)造類型枚舉類型enum數(shù)組結(jié)構(gòu)體struct共用體union基本類型字符類型char整型實型單精度型float雙精度型double短整型short長整型long整型int數(shù)據(jù)類型決定:1.數(shù)據(jù)占內(nèi)存字節(jié)數(shù)2.數(shù)據(jù)取值范圍3.其上可進行的操作第二十二頁第二十三頁,共72頁?;緮?shù)據(jù)類型類型符號關(guān)鍵字數(shù)的表示范圍所占位數(shù)整型字符型實型有無(signed)

int16-32768~32767(signed)

short16-32768~32767(signed)

long32-2147483648~214748364716unsigned

int0~65535320~4294967295unsigned

longunsigned

short160~65535有float323.4e-38~3.4e38有double641.7e-308~1.7e308有char8-128~127無unsignedchar80~255說明:數(shù)據(jù)類型所占字節(jié)數(shù)隨機器硬件不同而不同,上表以IBMPC機為例第二十三頁第二十四頁,共72頁。3.3常量與變量標識符定義:用來標識變量、常量、函數(shù)等的字符序列組成:只能由字母、數(shù)字、下劃線組成,且第一個字母必須是字母或下劃線大小寫敏感不能使用關(guān)鍵字

討論:判斷下列標識符號合法性sum Sum M.D.John day Date 3daysstudent_name #33 lotus_1_2_3 char a>babove$123_toDayM.D.John3days#33char$123a>b第二十四頁第二十五頁,共72頁。長度:TurboC中最長32個字符命名原則:見名知意,采用簡潔有含義的英文單詞(或縮寫)不宜混淆如l與I,o與0

標識符命名實例stu_name,sum,total,day,count,sort第二十五頁第二十六頁,共72頁。常量在程序運行過程中,其值不能改變的量稱為常量常量可為任意數(shù)據(jù)類型字面常量(直接常量)整型:

12、0、-3實型:

4.6、-1.23字符型:’a’、’d’字符串常量:”Hello”、”GoodMorning!”第二十六頁第二十七頁,共72頁。符號常量:標識符代表常量定義格式:#define<符號常量名><常量>

符號常量定義舉例

#definePI

3.1415926 #defineSTAR

‘*’說明:符號常量一般使用大寫英文字母表示,以區(qū)別一般用于小寫字母表示的變量。第二十七頁第二十八頁,共72頁。符號常量使用例符號常量舉例#definePRICE30main(){intnum,total;num=10;total=num*PRICE;printf("total=%d",total);}運行結(jié)果:total=300符號常量的使用能給程序員帶來哪些好處?第二十八頁第二十九頁,共72頁。變量其值可以改變的量稱為變量變量也可以為任意數(shù)據(jù)類型變量定義的一般格式數(shù)據(jù)類型變量1[,變量2,…,變量n];決定分配字節(jié)數(shù)和數(shù)的表示范圍變量定義舉例:inta,b,c;floatdata;第二十九頁第三十頁,共72頁。變量的使用:作強制定義,也就是“先定義,后使用”例1intstudent;stadent=19;//Undefinedsymbol‘stadent’infunctionmain

第三十頁第三十一頁,共72頁。整型數(shù)據(jù)整型常量形式表示方式舉例十進制整數(shù)由數(shù)字0~9和正負號表示123,-456,0八進制整數(shù)由數(shù)字0開頭,后跟數(shù)字0~7表示0123,011十六進制整數(shù)由0x開頭,后跟0~9,a~f,A~F表示0x123,0Xff問題:0123=()100x123=()100Xff=()10第三十一頁第三十二頁,共72頁。整型常量的類型根據(jù)其值所在范圍確定其數(shù)據(jù)類型在整常量后加字母l或L,認為它是longint型常量例

12與12L例30000為int型65536為longint型第三十二頁第三十三頁,共72頁。整型變量整型變量在內(nèi)存中以二進制的形式存放根據(jù)占用的字節(jié)數(shù)不同,分為不同類別整型變量定義舉例:inta,b;unsignedshortc,d;longe,f;第三十三頁第三十四頁,共72頁。實型數(shù)據(jù)實型常量十進制數(shù)形式(必須有小數(shù)點,整數(shù)部分為0時可以省略)0.123.123123.00.0123.

指數(shù)形式(e或E之前必須有數(shù)字;指數(shù)必須為整數(shù))12.3e3123E21.23e4e-5

1.2E-3.5.e3規(guī)范化的指數(shù)形式:在字母e(或E)之前的數(shù)據(jù)中,小數(shù)點左邊有且僅有一位非零的數(shù)字。指數(shù)形式實型常量12.3e3123E21.23e4(規(guī)范化)0.123e-3第三十四頁第三十五頁,共72頁。floata;a=111111.111doublea;a=111111.111問題:以下兩段程序代碼,是否有區(qū)別?float:占4字節(jié),提供7位有效數(shù)字double:占8字節(jié),提供15~16位有效數(shù)字第三十五頁第三十六頁,共72頁。字符常量定義:用單引號括起來的單個普通字符或轉(zhuǎn)義字符。字符常量的值:該字符的ASCII碼值轉(zhuǎn)義字符:反斜線后面跟一個字符或一個代碼值表示如‘a(chǎn)’‘A’‘?’‘\n’‘\101’如‘A’——65,‘a(chǎn)’——97,

‘0’——48,‘\n’——10<轉(zhuǎn)義字符及其含義:轉(zhuǎn)義字符含義\n\v\r\a\‘\ddd\t\b\f\\\“\xhh轉(zhuǎn)義字符含義換行垂直制表回車響鈴單引號3位8進制數(shù)代表的字符水平制表退格換頁反斜線雙引號2位16進制數(shù)代表的字符如‘\101’-----------‘A’‘\012’-----------’\n’‘\376’-----------’

’‘\x61’-----------’a’‘\60’-----------’0’‘\483’----------(

)例:‘A’-------’\101’-------’\x41’--------65例轉(zhuǎn)義字符舉例(ch2_001.c,ch2_004.c)main(){printf("\101\x42C\n");printf("Isay:\"Howareyou?\"\n");printf("\\CProgram\\\n");printf("Turbo\'C\'");}運行結(jié)果:(屏幕顯示)ABCIsay:”Howareyou?”\CProgram\Turbo‘C’例main(){printf(“Y\b=\n”);}運行結(jié)果:屏幕顯示:=打印機輸出:¥第三十六頁第三十七頁,共72頁。注意事項:單撇號中的字符不能是’或者\一個字符占一個字節(jié),存其對應的ASCII碼思考:’9’和9的區(qū)別?字符型數(shù)據(jù)可像整數(shù)一樣在程序中參與相關(guān)的運算‘a(chǎn)’–32結(jié)果為65第三十七頁第三十八頁,共72頁。字符變量字符變量存放字符ASCII碼char與int數(shù)據(jù)間可進行算術(shù)運算例1a=‘D’;/*a=68;*/x=‘A’+5;/*x=65+5;*/s=‘!’+‘G’/*s=33+71;*/例2

main(){charc1,c2;c1=97;c2=98;printf(“%c%d”,c1,c2);}第三十八頁第三十九頁,共72頁。字符串常量定義:用雙引號(“”)括起來的字符序列存儲:每個字符串尾自動加一個‘\0’作為字符串結(jié)束標志字符常量與字符串常量不同hello

\0例字符串“hello”在內(nèi)存中例空串“”\0aa\0例‘a(chǎn)’“a”例:charch;ch=‘A’;例:charch;ch=“A”;沒有字符串變量,用字符數(shù)組存放第三十九頁第四十頁,共72頁。變量賦初值根據(jù)變量的定義,為其分配指定字節(jié)的內(nèi)存單元…...地址inta=1,b=-3,c;abc2字節(jié)2字節(jié)2字節(jié)地址地址…...內(nèi)存1-3

隨機數(shù)第四十頁第四十一頁,共72頁。例main(){intx,y;printf(“%d,%d”,x,y);}運行結(jié)果:64,3129如果定義了變量,但是沒有對它賦初值,則它的值是一個不確定的數(shù)值。第四十一頁第四十二頁,共72頁。3.4運算符和表達式C運算符簡介C運算符算術(shù)運算符:(+-*/%++--)關(guān)系運算符:(<<===>>=!=)邏輯運算符:(!&&||)位運算符:(<<>>~|^&)賦值運算符:(=及其擴展)條件運算符:(?:)逗號運算符:(,)指針運算符:(*&)求字節(jié)數(shù):(sizeof)強制類型轉(zhuǎn)換:(類型)分量運算符:(.->)下標運算符:([])其它:(()-)學習運算符應注意運算符功能與運算量關(guān)系-要求運算量個數(shù)-要求運算量類型運算符優(yōu)先級別結(jié)合方向結(jié)果的類型第四十二頁第四十三頁,共72頁?;镜乃阈g(shù)運算符+

加法運算或正值運算符- 減法運算或負值運算符* 乘法運算符/

除法運算符,求商,兩個整數(shù)相除結(jié)果為整數(shù)%

模運算符,求余,要求兩邊均為整型數(shù)據(jù)3+5、+35-2、-33*55/37%43.4.1算術(shù)運算符及其表達式

第四十三頁第四十四頁,共72頁。例5/2=-5/2.0=例5%2=-5%2=5%-2=1%10=

5%1=5.5%22-2.51-110(

)1取模的余數(shù)符號由被除數(shù)決定第四十四頁第四十五頁,共72頁。算術(shù)表達式和運算符的優(yōu)先級和結(jié)合性算術(shù)表達式:用算術(shù)運算符和括號將運算對象連接起來的、符合C語法規(guī)則的式子。求表達式的值:先按運算符的優(yōu)先級別高低次序執(zhí)行;再一個運算對象兩則的運算賦的優(yōu)先級別相同,則按規(guī)定的“結(jié)合方向”處理。a*b/c-1.5+’a’a–b*c/d第四十五頁第四十六頁,共72頁。自增++、自減運算符—作用:使變量值加1或減1種類:前置++i,--i(先執(zhí)行i+1或i-1,再使用i值)后置i++,i--(先使用i值,再執(zhí)行i+1或i-1)例j=3;k=++j;j=3;k=j++;j=3;printf(“%d”,++j);j=3;printf(“%d”,j++);a=3;b=5;c=(++a)*b;a=3;b=5;c=(a++)*b;

//k=4,j=4//k=3,j=4//4//3//c=20,a=4//c=15,a=4第四十六頁第四十七頁,共72頁。注意說明:只能用于變量,不能用于常量或表達式;結(jié)合方向“自右向左”;優(yōu)先級別:--++-------->*/%----->+-自增(減)運算常用于循環(huán)語句中循環(huán)變量自動加(減)1或指針變量,使指針指向下一個地址5++(×)(a+b)++(×)i++(√)例1解答:

-i++

-(i++)i=3;printf(“%d”,-i++);//-3

例1:-i++i=3;printf(“%d”,-i++);

第四十七頁第四十八頁,共72頁。i+++j,應如何結(jié)合?解答:理解為(i++)+jC編譯在處理時盡可能多地(自左而右)將若干個字符組成一個運算符。第四十八頁第四十九頁,共72頁。3.4.2關(guān)系運算符及其表達式關(guān)系運算符種類:<<=>>===!=結(jié)合方向:自左向右優(yōu)先級別:低于算術(shù)運算符而高于賦值運算符<<=>>===!=優(yōu)先級6(高)優(yōu)先級7(低)例c>a+b//c>(a+b)a>b!=c//(a>b)!=ca==b<c//a==(b<c)a=b>c//a=(b>c)第四十九頁第五十頁,共72頁。關(guān)系表達式的值:是邏輯量“真”或“假”,分別用1和0表示。例inta=3,b=2,c=1,d,f;a>b(a>b)==cb+c<ad=a>bf=a>b>c//表達式值1//表達式值1//表達式值0//d=1//f=0C中沒有邏輯型第五十頁第五十一頁,共72頁。例1若a=0;b=0.5;x=0.3;

則a<=x<=b的值為0例25>2>7>8在C中是允許的,值為0例3inti=1,j=7,a;a=i+(j%4!=0);

則a=2例4‘a(chǎn)’>0結(jié)果為‘A’>100結(jié)果為10第五十一頁第五十二頁,共72頁。例5注意區(qū)分“=”與“==”inta=0,b=1;if(a=b)printf(“a等于b”);elseprintf(“a不等于b”);第五十二頁第五十三頁,共72頁。例6表達式1.0/3.0*3.0==1.0的值 為

可改寫為:

fabs(1.0/3.0*3.0-1.0)<1e-6應避免對實數(shù)作相等或不等的判斷0第五十三頁第五十四頁,共72頁。3.4.3邏輯運算符及其表達式邏輯運算符種類:&&(與)||(或)!(非)邏輯運算真值表ab!a!ba&&ba||b真1假0真1假0假0假0真1真1真1假0假0假0假0假0真1真1假0假0真1真1真1假0真1真1第五十四頁第五十五頁,共72頁。優(yōu)先級和結(jié)合方向(詳見課本P308附錄C)!算術(shù)運算符關(guān)系運算符&&||賦值運算符高低優(yōu)先級:結(jié)合方向:!:從右向左&&:從左向右||:從左向右例a<=x&&x<=ba==b||x==y!a||a>b//(a<=x)&&(x<=b)//(a==b)||(x==y)//(!a)||(a>b)第五十五頁第五十六頁,共72頁。3.4.4條件運算符及其表達式條件運算符一般形式為:表達式1?表達式2:表達式3運算規(guī)則:如果“表達式1”的值為非0(即邏輯真),則運算結(jié)果等于“表達式2”的值,否則,運算結(jié)果等于“表達式3”的值。也就是說,“表達式2”與“表達式3”中,只有一個被執(zhí)行,而不會全部執(zhí)行。例如:(a>b)?a:b/*返回a和b中較大的數(shù)*/x?1:0/*若x是非0數(shù),返回1,否則返回0*/(score>=60)?’Y’:’N’/*若及格,返回字符‘Y’,否則返回字符‘N’*/第五十六頁第五十七頁,共72頁。3.4.5賦值運算符及其表達式簡單賦值運算符“=”作用:將一個數(shù)據(jù)賦給一個變量結(jié)合方向:自右向左 優(yōu)先級:14常量或表達式只能是變量,不能是常量或表達式例3=x-2*y;a+b=3;例a=3;a=(a+b)*c第五十七頁第五十八頁,共72頁。賦值轉(zhuǎn)換規(guī)則:使賦值號右邊表達式值自動轉(zhuǎn)換成其左邊變量的類型例1

floatf;inti;i=10;f=i;

f=10.0例2inti;i=2.56;//結(jié)果i=2;第五十八頁第五十九頁,共72頁。賦值表達式定義:由賦值運算符”=”將一個變量和一個表達式連接起來的式子,叫賦值表達式。一般形式:<變量>=<表達式>賦值表達式的值與變量值相等,且可嵌套例:a=b=c=5a=(b=5)a=5+(c=6)a=(b=4)+(c=6)a=(b=10)/(c=2)//b=10,c=2,a=5,表達式值5//b=4,c=6,a=10,表達式值10//c=6,a=11,表達式值11//b=5;a=5,表達式值為5//b=5;a=5,表達式值為5//b=4,c=6,a=10,表達式值10//c=6,a=11,表達式值11//b=5;a=5,表達式值為5//b=10,c=2,a=5,表達式值5//b=4,c=6,a=10,表達式值10//c=6,a=11,表達式值11//a,b,c值為5,表達式值為5//b=5;a=5,表達式值為5第五十九頁第六十頁,共72頁。復合的賦值運算符

+=-=*=/=%=《=》=&=^=|=a+=3a=a+3x*=y+8x=x*(y+8)x%=3x=x%3例:a=12;a+=a-=a*a//a=-264等價于a=a+(a=a-(a*a))例:inta=2;a%=4-1;a+=a*=a-=a*=3;//a=0等價于a=a+(a=a*(a=a-(a=a*3)))第六十頁第六十一頁,共72頁。3.4.6逗號運算符和表達式形式:表達式1,表達式2,……表達式n結(jié)合性:從左向右優(yōu)先級:15(最低)逗號表達式的值:等于表達式n的值第六十一頁第六十二頁,共72頁。例1a=3*5,a*4a=3*5,a*4,a+5例2x=(a=3,6*3)x=a=3,6*a例3a=1;b=2;c=3;printf(“%d,%d,%d”,a,b,c);printf(“%d,%d,%d”,(a,b,c),b,c);例4printf(“%d,%d,%d”,a,b,c);printf(“%d,%d,%d”,(a,b,c),b,c)//a=15,逗號表達式值為60//a=15,逗號表達式值為20//x=18,賦值表達式值18//x=3,逗號表達式值18//1,2,3//3,2,3//逗號起分隔作用//逗號為逗號運算符第六十二頁第六十三頁,共72頁。例:#include<stdio.h>main(){intx,y=7;floatz=4;x=(y=y+6,y/z);printf("x=%d\n",x);}運行結(jié)果:x=3第六十三頁第六十四頁,共72頁。3.4.7求字節(jié)運算符sizeof運算符是一個求字節(jié)數(shù)運算符。它是一個單目運算符,求字節(jié)運算的一般形式為:sizeof(數(shù)據(jù)類型名|變量名|常量)功能:返回某數(shù)據(jù)類型、某變量或者某常量在內(nèi)存中的字節(jié)長度。例如:printf(“%d\n”,sizeof(short));/*輸出字節(jié)數(shù)2*/printf(“%d\n”,sizeof(x));

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論