C語言數(shù)據(jù)類型、運算符和表達(dá)式.ppt
《C語言數(shù)據(jù)類型、運算符和表達(dá)式.ppt》由會員分享,可在線閱讀,更多相關(guān)《C語言數(shù)據(jù)類型、運算符和表達(dá)式.ppt(92頁珍藏版)》請在裝配圖網(wǎng)上搜索。
第3章C語言數(shù)據(jù)類型、運算符和表達(dá)式,本章要點:數(shù)據(jù)的描述規(guī)則數(shù)據(jù)的操作規(guī)則,教學(xué)要求:,1.掌握C語言數(shù)據(jù)類型分類。2.掌握整型數(shù)據(jù)、實型數(shù)據(jù)、字符數(shù)據(jù)使用規(guī)則。3.掌握C語言常量、變量的使用。,內(nèi)容提要:,3.1基本字符、標(biāo)識符和關(guān)鍵字3.2基本數(shù)據(jù)類型3.3常量與變量3.4整型數(shù)據(jù)3.5實型數(shù)據(jù)3.6字符型數(shù)據(jù),內(nèi)容提要:,3.7變量賦初值3.8各類數(shù)值型數(shù)據(jù)間的混合運算3.9運算符和算術(shù)表達(dá)式,3.1基本字符、標(biāo)識符和關(guān)鍵字,一、符號集(字符集)C語言的基本符號共有以下五種:(1)大寫字母A~Z(2)小寫字母a~z(3)阿拉伯?dāng)?shù)字0~9(4)下劃線_(5)標(biāo)點符號和運算符,二、標(biāo)識符,標(biāo)識符號常量、變量、函數(shù)、類型名、文件等的有效字符序列。標(biāo)識符構(gòu)成規(guī)則:(1)標(biāo)識符只能由字母、數(shù)字和下劃線三種字符組成,且第一個字符必須為字母或下劃線。例:xy3_imaxECSEXA_to_B(合法)7xint#Nobadonereg-input(不合法)(2)在C語言中,大小寫字母不等效。a和A,I和i,Sum和sum,分別是兩個不同的標(biāo)識符。(3)用戶自定義的標(biāo)識符不能與保留字(關(guān)鍵字)同名。,三、關(guān)鍵字(保留字),概念:就是具有特定含義的標(biāo)識符,用戶不能用來作自定義標(biāo)識符。C語言中的關(guān)鍵字較少,由ANSI標(biāo)準(zhǔn)推薦的關(guān)鍵字有32個。(1)與數(shù)據(jù)類型有關(guān)的(14個):charintfloatdoublesignedunsignedshortlongvoidstructuniontypedefenumsizeof(2)與存儲類別有關(guān)的:autoexternregisterstatic,三、關(guān)鍵字(續(xù)),(3)與程序控制結(jié)構(gòu)有關(guān)的(12):dowhileforifelseswitchcasedefaultgotocontinuebreakreturn注意:所有的關(guān)鍵字都有固定的意義,不能用作其它所有關(guān)鍵字都必須小寫。如else與ELSE表示不同的含義,3.2C的數(shù)據(jù)類型,C語言提供了以下一些數(shù)據(jù)類型,數(shù)據(jù)類型,構(gòu)造類型,指針類型,空類型(無值類型)void,,3.3常量與變量,3.3.1常量和符號常量1、常量在程序運行過程中,其值不能被改變的量稱為常量常量區(qū)分為不同的類型:,,整型100,125,-100,0實型3.14,0.125,-3.789字符型‘a(chǎn)’,‘b’,‘2’字符串‘a(chǎn)’,‘a(chǎn)b’,‘1232’,2、符號常量,用一個標(biāo)識符代表一個常量定義方法#define標(biāo)識符常量,例3.1符號常量的使用#definePI3.14159#includevoidmain(){intr;floats;scanf(″%d″,},說明:程序中用#define命令行定義PI代表常量3.14,此后凡在本文件中出現(xiàn)的PI都代表3.14159,可以和常量一樣進(jìn)行運算。,符號常量:用一個標(biāo)識符代表一個常量。符號常量的值在其作用域內(nèi)不能改變,也不能再被賦值。,運行結(jié)果:2area=12.566360,說明:如再用賦值語句給PRICE賦值是錯的PI=3.14;/*錯誤,不能給符號常量賦值,3.3常量與變量,3.3.2變量概念:在程序運行期間,其值是可以改變的量。用標(biāo)識符(變量名)來表示。變量代表內(nèi)存中具有特定屬性的一個存儲單元,它用來存放數(shù)據(jù),這就是變量的值。從變量中取值,實際上是通過變量名找到相應(yīng)的內(nèi)存地址,從該存儲單元中讀取數(shù)據(jù)。變量的定義方法:類型符標(biāo)識符,,3.3常量與變量(續(xù)),變量命名的規(guī)定:C語言規(guī)定標(biāo)識符只能由字母、數(shù)字和下劃線三種字符組成,且第一個字符必須為字母或下劃線。例:sum,_total,month,Student_name,lotus_1_2_3,BASIC,li_lingM.D.John,¥123,3D64,a>b,?,?,3.3常量與變量(續(xù)),注意:編譯系統(tǒng)將大寫字母和小寫字母認(rèn)為是兩個不同的字符。建議變量名的長度最好不要超過8個字符。見名知意。先定義,后使用。習(xí)慣上,符號常量用名用大寫,變量名用小寫,以示區(qū)別。,3.4整型數(shù)據(jù),一、整型常量的表示方法整型常量即整常數(shù)。在C語言中,整常數(shù)可用以下三種形式表示:(1)十進(jìn)制整數(shù)。如:123,-456,4。(2)八進(jìn)制整數(shù)。最高位必須用0作引導(dǎo)符。如:0123表示八進(jìn)制數(shù)123,等于十進(jìn)制數(shù)83,-011表示八進(jìn)制數(shù)-11,即十進(jìn)制數(shù)-9。,3.4整型數(shù)據(jù)(續(xù)),(3)十六進(jìn)制整數(shù)。以0 x(0X)開頭的數(shù)是16進(jìn)制數(shù)。如:0 x123,代表16進(jìn)制數(shù)123,等于十進(jìn)制數(shù)291。-0 x12等于十進(jìn)制數(shù)-10。,二、整型變量(1)整型數(shù)據(jù)在內(nèi)存中的存放形式數(shù)據(jù)在內(nèi)存中是以二進(jìn)制形式存放的。如:inti;/*定義為整型變量*/i=10;/*給i賦以整數(shù)10*/,3.4整型數(shù)據(jù)(續(xù)),注意:十進(jìn)制數(shù)10的二進(jìn)制形式為1010,TurboC2.0和TurboC++3.0為一個整型變量在內(nèi)存中分配2個字節(jié)的存儲單元(不同的編譯系統(tǒng)為整型數(shù)據(jù)分配的字節(jié)數(shù)是不相同的,VC++6.0則分配4個字節(jié))。數(shù)值是以補(bǔ)碼(complement)表示的。,3.4整型數(shù)據(jù)(續(xù)),(2)整型變量的分類,共六種,,有符號基本整型有符號短整型有符號長整型無符號基本整型無符號短整型無符號長整型,(signed)int(signed)short(int)(signed)long(int)unsignedintunsignedshort(int)unsignedlong(int),注意:括號表示其中的內(nèi)容是可選的.,3.4整型數(shù)據(jù)(續(xù)),整數(shù)類型的有關(guān)數(shù)據(jù):,,,,,,,,類型類型說明符長度數(shù)的范圍基本型int2字節(jié)-32768~32767短整型short2字節(jié)-215~215-1長整型long4字節(jié)-231~231-1無符號整型unsigned2字節(jié)0~65535無符號短整型unsignedshort2字節(jié)0~65535無符號長整型unsignedlong4字節(jié)0~(232-1),,3.4整型數(shù)據(jù)(續(xù)),例如:整數(shù)13在內(nèi)存中實際存放的情況:,3.4整型數(shù)據(jù)(續(xù)),(3)整型變量的定義和使用C規(guī)定在程序中所有用到的變量都必須在程序中定義,即“強(qiáng)制類型定義”。定義的一般形式:類型說明符變量名1,變量名2,;例如:inta,b;/*指定變量a、b為整型*/unsignedshortc,d;/*指定變量c、d為無符號短整型*/longe,f;/*指定變量e、f為長整型*/,變量的定義和使用,注意:(1)允許在一個類型說明符后,定義多個相同類型的變量。各變量名之間用逗號隔開;類型說明符與變量名之間至少用一個空格間隔。(2)最后一個變量名之后必須以“;”號結(jié)尾。(3)變量定義必須放在變量使用之前。,3.4整型數(shù)據(jù)(續(xù)),【例】整型變量的定義與使用。#includevoidmain(){inta,b,c;printf(”Pleaseinputtwonumbers:”);scanf(”%d,%d”,},例:整型變量的定義與使用#includevoidmain(){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);},說明:可以看到不同種類的整型數(shù)據(jù)可以進(jìn)行算術(shù)運算。,運行結(jié)果:a+u=22,b+u=-14,例:整型數(shù)據(jù)的溢出#includevoidmain(){inta,b;a=32767;b=a+1;printf(“%d,%d\n”,a,b);},說明:數(shù)值是以補(bǔ)碼表示的。一個整型變量只能容納-32768~32767范圍內(nèi)的數(shù),無法表示大于32767或小于-32768的數(shù)。遇此情況就發(fā)生“溢出”。,運行結(jié)果:32767,-32768,3.4整型數(shù)據(jù)(續(xù)),三、整型常量的類型(1)一個整數(shù),如果其值在-32768~+32767范圍內(nèi),認(rèn)為它是int型,它可以賦值給int型和longint型變量。(2)一個整數(shù),如果其值超過了上述范圍,而在-2147483637~+2147483647范圍內(nèi),則認(rèn)為它是為長整型??梢詫⑺x值給一個longint型變量。,3.4整型數(shù)據(jù)(續(xù)),(3)如果所用的C版本(如TurboC)分配給shortint與int型數(shù)據(jù)在內(nèi)存中占據(jù)的長度相同,則它的表數(shù)范圍與int型相同。因此一個int型的常量同時也是一個shortint型常量,可以賦給int型或shortint型變量。,3.4整型數(shù)據(jù)(續(xù)),(4)一個整常量后面加一個字母u或U,認(rèn)為是unsignedint型。如12345u,在內(nèi)存中按unsignedint規(guī)定的方式存放(存儲單元中最高位不作為符號位,而用來存儲數(shù)據(jù))。如果寫成-12345u,則先將-12345轉(zhuǎn)換成其補(bǔ)碼53191,然后按無符號數(shù)存儲。(5)在一個整常量后面加一個字母l或L,則認(rèn)為是longint型常量。,3.5浮點型數(shù)據(jù)(實型數(shù)據(jù)),3.5.1實型常量的表示方法,兩種表示形式,,小數(shù)指數(shù),0.1233e-3,注意:字母e(或E)之前必須有數(shù)字,且e后面的指數(shù)必須為整數(shù),1e3、1.8e-3、-123e-6、-.1e-3e3、2.1e3.5、.e3、e,?,?,實型二種表現(xiàn)形式:,十進(jìn)制形式:由數(shù)字和小數(shù)點組成;,指數(shù)形式:由“十進(jìn)制小數(shù)”+“e(或E)”+“十進(jìn)制數(shù)整數(shù)”三部分組成。,例如:3.44..3,例如:12.5e-6表示12.510-6,,,十進(jìn)制小數(shù),e(或E),十進(jìn)制整數(shù),,,,注意:,小數(shù)點不能單獨出現(xiàn);,e或E的兩邊必須有數(shù),且其后面必須為整數(shù);,如:0.、.0應(yīng)為:.,如:6E0.2e56E,,,,,,3.5.2實型變量,實型變量的分類實型變量分為單精度(float型)、雙精度(double型)和長雙精度型(longdouble)三類形式。,說明:,C編譯系統(tǒng)通常把所有實型常數(shù)都被默認(rèn)為double型。絕對值小于1的浮點數(shù),其小數(shù)點前面的零可以省略。TurboC默認(rèn)格式輸出浮點數(shù),最多只保留小數(shù)點后6位。,3.5.3實型數(shù)據(jù)在內(nèi)存中的存放形式,浮點型數(shù)據(jù)是按照指數(shù)形式存儲的。系統(tǒng)把一個實型數(shù)據(jù)分成小數(shù)部分和指數(shù)部分,分別存放。指數(shù)部分采用規(guī)范化的指數(shù)形式。,例3.4實型數(shù)據(jù)的舍入誤差#includevoidmain(){floata,b;a=123456.789e5;b=a+20;printf(“%f\n”,b);},說明:一個實型變量只能保證的有效數(shù)字是7位有效數(shù)字,后面的數(shù)字是無意義的,并不準(zhǔn)確地表示該數(shù)。應(yīng)當(dāng)避免將一個很大的數(shù)和一個很小的數(shù)直接相加或相減,否則就會“丟失”小的數(shù)。,運行結(jié)果:12345678848.000000,3.6字符型數(shù)據(jù),3.6.1字符常量用單引號包含的一個字符是字符型常量只能包含一個字符,例,‘a(chǎn)’,’A’,‘1’‘a(chǎn)bc’、“a”,,,?,字符型常量簡稱字符常量包括可視字符常量和轉(zhuǎn)義字符常量,,1.可視字符,ASCII基本字符集中包括94個可視字符和34個控制字符,直接用單引號括起來即為字符常量。例如:,注意:(1)單引號不占存儲空間(2)C語言中,‘a(chǎn)’和a不同(3)單引號括起的大寫字母和小寫字母代表不不同的字符常量。如:‘a(chǎn)’和‘A’(4)單引號括起‘’也是字符常量,存儲的是空格的ASCII值32,2.轉(zhuǎn)義字符,,ASCII中的控制字符是不可見字符,不能直接用單引號括起的形式表示。,\n換行\(zhòng)t橫向跳格\r回車,在某些特定字符前加“\”,表示某種特殊的意義或控制動作。稱這種形式的字符為轉(zhuǎn)義字符。,說明:(1)轉(zhuǎn)義字符代表一個字符,在內(nèi)存中只占一個字節(jié)的存儲空間。(2)轉(zhuǎn)義字符‘\0’,表示字符串常量結(jié)束的標(biāo)志符(3)\dddddd表示1到3位八進(jìn)制數(shù)字(4)\xhhhh表示1到2位十六進(jìn)制數(shù)字,3.6字符型數(shù)據(jù),3.6.2字符變量字符型變量用來存放字符常量,注意只能放一個字符。字符變量的定義形式如下:charc1,c2;在本函數(shù)中可以用下面語句對c1,c2賦值:c1=‘a(chǎn)’;c2=‘b’;一個字符變量在內(nèi)存中占一個字節(jié)。,,3.6字符型數(shù)據(jù),3.6.3字符數(shù)據(jù)在內(nèi)存中的存儲形式一個字符常量存放到一個字符變量中,是將該字符的相應(yīng)的ASCII代碼放到存儲單元中。使字符型數(shù)據(jù)和整型數(shù)據(jù)之間可以通用。,注意:一個字符數(shù)據(jù)既可以以字符形式輸出,也可以整數(shù)形式輸出。,例3.6向字符變量賦以整數(shù)。#includevoidmain(){charc1,c2;c1=97;c2=98;printf(“%c%c\n”,c1,c2);printf(“%d%d\n”,c1,c2);},說明:在第3和第4行中,將整數(shù)97和98分別賦給c1和c2,它的作用相當(dāng)于以下兩個賦值語句:c1=′a′;c2=′b′;因為’a’和’b’的ASCII碼為97和98,運行結(jié)果:ab9798,例3.7大小寫字母的轉(zhuǎn)換#includevoidmain(){charc1,c2;c1=’a’;c2=’b’;c1=c1-32;c2=c2-32;printf(“%c%c″,c1,c2);},說明:程序的作用是將兩個小寫字母a和b轉(zhuǎn)換成大寫字母A和B。從ASCII代碼表中可以看到每一個小寫字母比它相應(yīng)的大寫字母的ASCII碼大32。C語言允許字符數(shù)據(jù)與整數(shù)直接進(jìn)行算術(shù)運算。,運行結(jié)果:AB,3.6字符型數(shù)據(jù),說明:如果在字符變量中存放一個ASCII碼為0~127間的字符,由于字節(jié)中最高位為0,因此用%d輸出字符變量時,輸出的是一個正整數(shù)。如果在字符變量中存放一個ASCII碼為128~255間的字符,由于在字節(jié)中最高位為1,用%d格式符輸出時,就會得到一個負(fù)整數(shù)。,3.6字符型數(shù)據(jù),3.6.4字符串常量字符串常量是一對雙撇號括起來的字符序列.合法的字符串常量:“Howdoyoudo.”,“CHINA”,“a”,“$123.45”可以輸出一個字符串,如printf(“Howdoyoudo.”);,3.6字符型數(shù)據(jù),‘a’是字符常量,”a”是字符串常量,二者不同。如:假設(shè)c被指定為字符變量:charc,c=’a’;c=”a”;c=”CHINA”;,?,?,結(jié)論:不能把一個字符串常量賦給一個字符變量。,C規(guī)定:在每一個字符串常量的結(jié)尾加一個“字符串結(jié)束標(biāo)志”,以便系統(tǒng)據(jù)此判斷字符串是否結(jié)束。C規(guī)定以字符’\0’作為字符串結(jié)束標(biāo)志。,如:如果有一個字符串常量”CHINA”,實際上在內(nèi)存中是:,它占內(nèi)存單元不是5個字符,而是6個字符,最后一個字符為’\0’。但在輸出時不輸出’\0’。,3.6字符型數(shù)據(jù),3.6字符型數(shù)據(jù),注意:字符串常量首尾的雙引號是界定符‘a(chǎn)’和“a”所占存儲空間“123”和123不同,3.7變量賦初值,(1)C語言允許在定義變量的同時使變量初始化如:inta=3;//指定a為整型變量,初值為3floatf=3.56;//指定f為浮點型變量,初值為3.56charc=‘a(chǎn)’;//指定c為字符變量,初值為‘a(chǎn)’,3.7變量賦初值,(2)可以使被定義的變量的一部分賦初值。如:inta,b,c=5;表示指定a、b、c為整型變量,但只對c初始化,c的初值為5。(3)如果對幾個變量賦以同一個初值,應(yīng)寫成:inta=3,b=3,c=3;表示a、b、c的初值都是3。不能寫成∶inta=b=c=3;,注意:初始化不是在編譯階段完成的而是在程序運行時執(zhí)行本函數(shù)時賦初值的,相當(dāng)于有一個賦值語句。,3.7各類數(shù)值型數(shù)據(jù)間的混合運算,混合運算:整型(包括int,short,long)、浮點型(包括float,double)可以混合運算。在進(jìn)行運算時,不同類型的數(shù)據(jù)要先轉(zhuǎn)換成同一類型,然后進(jìn)行運算.,說明:這種類型轉(zhuǎn)換是由系統(tǒng)自動進(jìn)行的。,總趨勢:存儲長度較短存儲長度較長,,例:,intx=2;floaty=1.6;charc=A;,c+x*y=?,,,65(int),,,2(int),,,1.6(double),,3.2(double),,68.2(double),2、數(shù)據(jù)類型間的強(qiáng)制轉(zhuǎn)換,(要轉(zhuǎn)換成的數(shù)據(jù)類型)(被轉(zhuǎn)換的表達(dá)式),注意:,形式:,強(qiáng)制類型轉(zhuǎn)換時,得到所需類型的值,原來變量的類型和值都不變。,例:,inta=2,b=5;floatx=4.4;,(float)b/a,,2.5,(int)x/a,,2,例:(double)a將a轉(zhuǎn)換成double類型(int)(x+y)將x+y的值轉(zhuǎn)換成整型(float)(5%3)將5%3的值轉(zhuǎn)換成float型,2、數(shù)據(jù)類型間的強(qiáng)制轉(zhuǎn)換,注意:強(qiáng)制類型轉(zhuǎn)換形式中的表達(dá)式一定要用括號括起來。否則強(qiáng)制轉(zhuǎn)換僅對強(qiáng)制轉(zhuǎn)換運算符的變量進(jìn)行類型轉(zhuǎn)換。例如:(int)(3.5+6.7)+8(int)3.5+8,3.8算術(shù)運算符和算術(shù)表達(dá)式,C的運算符有以下幾類:(1)算術(shù)運算符(+-*/%)(2)關(guān)系運算符(><==>=<=?。剑?3)邏輯運算符(!&&||)(4)位運算符(>~|∧&)(5)賦值運算符(=及其擴(kuò)展賦值運算符)(6)條件運算符(?:)(7)逗號運算符(,)(8)指針運算符(*和&),3.8.1算術(shù)運算符和算術(shù)表達(dá)式,1.基本的算術(shù)運算符:+(加法運算符,或正值運算符。如:3+5、+3)-(減法運算符,或負(fù)值運算符。如:5-2、-3)*(乘法運算符。如:3*5)/(除法運算符。如:5/3)%(模運算符,或稱求余運算符,%兩側(cè)均應(yīng)為整型數(shù)據(jù),如:7%4的值為3)。,3.8.1算術(shù)運算符和算術(shù)表達(dá)式,2.算術(shù)表達(dá)式和運算符的優(yōu)先級與結(jié)合性用算術(shù)運算符和括號將運算對象(也稱操作數(shù))連接起來的、符合C語法規(guī)則的式子,稱為C算術(shù)表達(dá)式。運算對象包括常量、變量、函數(shù)等。例如:a*b/c-1.5+′a′是一個合法的表達(dá)式,C語言規(guī)定了運算符的優(yōu)先級和結(jié)合性。在表達(dá)式求值時,先按運算符的優(yōu)先級別高低次序執(zhí)行,例如先乘除后加減。C規(guī)定了各種運算符的結(jié)合方向(結(jié)合性)算術(shù)運算符的結(jié)合方向為“自左至右”,即先左后右。,3.8.1算術(shù)運算符和算術(shù)表達(dá)式,3.8.1算術(shù)運算符和算術(shù)表達(dá)式,3.自增、自減運算符作用是使變量的值增1或減1如:++i,--i(在使用i之前,先使i的值加(減)1)i++,i--(在使用i之后,使i的值加(減)1),3.8.1算術(shù)運算符和算術(shù)表達(dá)式,i++與++i的區(qū)別:++i是先執(zhí)行i=i+1后,再使用i的值;i++是先使用i的值后,再執(zhí)行i=i+1。例如:如果i的值為3①j=++i;i的值先變成4,再賦給j,j的值均為4②j=i++;先將i的值3賦給j,j的值為3,然后i變?yōu)椋?3.8.1算術(shù)運算符和算術(shù)表達(dá)式,注意:(1)自增運算符(++),自減運算符(--),只能用于變量,而不能用于常量或表達(dá)式,(2)++和--的結(jié)合方向是“自右至左”。,自增(減)運算符常用于循環(huán)語句中使循環(huán)變量自動加1。也用于指針變量,使指針指向下一個地址。,,main(){inta=5,b=6;inti,j,m,n;i=++a;j=--b;m=a++;n=b--;printf(“Thevaluesofiandjare:\n”);printf(“i=%d,j=%d\n”,i,j);printf(“Thevaluesofmandnare:\n”);printf(“m=%d,n=%d\n”,m,n);printf(“Thevaluesofaandbare:\n”);printf(“a=%d,b=%d\n”,a,b);},3.8.2賦值運算符和賦值表達(dá)式,1、賦值運算符,=(數(shù)學(xué)上的等號),功能:將一個表達(dá)式的值賦給一個變量。,例如:a=5;ave=(a+b)/10;,注意:與數(shù)學(xué)中的等式不同。,用法:變量=表達(dá)式,2、復(fù)合賦值運算符,*=、/=、%=、+=、-=、>=、a+=a*=a;,,,a=8;,注意:如果是包含若干項的表達(dá)式,則相當(dāng)于它有括號。如:①x%=y+3②x%=(y+3)|__↑③x=x%(y+3)(不要錯寫成x=x%y+3),2、復(fù)合賦值運算符(續(xù)),3、賦值表達(dá)式,用賦值運算符將變量和表達(dá)式連接起來的式子,形式:=,求值規(guī)則:將“=”右邊表達(dá)式的值賦給左邊的變量。,結(jié)合性:自右至左,,3、賦值表達(dá)式,對賦值表達(dá)式求解的過程是:①求賦值運算符右側(cè)的“表達(dá)式”的值;②賦給賦值運算符左側(cè)的變量。例如:賦值表達(dá)式“a=3*5”的值為15,執(zhí)行表達(dá)式后,變量a的值也是15。,注意:一個表達(dá)式應(yīng)該有一個值,3、賦值表達(dá)式,賦值表達(dá)式中的“表達(dá)式”,又可以是一個賦值表達(dá)式。例如:a=(b=5),分析:括弧內(nèi)的“b=5”是一個賦值表達(dá)式,它的值等于5。執(zhí)行表達(dá)式“a=(b=5)”相當(dāng)于執(zhí)行“b=5”和“a=b”兩個賦值表達(dá)式。賦值運算符按照“自右而左”的結(jié)合順序,因此,“(b=5)”外面的括弧可以不要,即“a=(b=5)”和“a=b=5”等價。,3、賦值表達(dá)式,請分析下面的賦值表達(dá)式∶(a=3*5)=4*3,分析:先執(zhí)行括弧內(nèi)的運算,將15賦給a,然后執(zhí)行4*3的運算,得12,再把12賦給a。最后a的值為12,整個表達(dá)式的值為12??梢钥吹健?a=3*5)出現(xiàn)在賦值運算符的左側(cè),因此賦值表達(dá)式(a=3*5)是左值,注意:在對賦值表達(dá)式(a=3*5)求解后,變量a得到值15執(zhí)行(a=3*5)=4*3時,實際上是將4*3的積12賦給變量a,而不是賦給3*5。,不能寫成:a=3*5=4*3,3、賦值表達(dá)式,賦值表達(dá)式也可以包含復(fù)合的賦值運算符。如:a+=a-=a*a,分析:此賦值表達(dá)式的求解步驟如下∶①先進(jìn)行“a-=a*a”的運算,它相當(dāng)于a=a-a*a,a的值為12-144=-132。②再進(jìn)行“a+=-132”的運算,相當(dāng)于a=a+(-132),a的值為-132-132=-264。,4、賦值轉(zhuǎn)換,在賦值時,將賦值符右邊值的類型轉(zhuǎn)換成與其左邊變量類型一致的類型。,幾種情況:,(1)實型,,整型(字符型),取整數(shù)部分,去掉小數(shù)部分,(2)整型、字符型,,實型,補(bǔ)足有效位,floatf=23;23.00000(7位)doublef=A;65.00000000000000(16位),(3)對char、int、short、long、unsigned型數(shù)據(jù),賦值符右邊數(shù)據(jù)(a位),賦值符左邊變量(b位),,★,a=b原樣照賦,★,a>b截斷高a-b位,送低b位,★,a3,3>5,>=:大于等于,5>=3,3>=5,與數(shù)學(xué)上(≥)不同,==:等于,5==3,與數(shù)學(xué)上(=)不同,!=:不等于,5!=3,與數(shù)學(xué)上(≠)不同,C語言中,真:非0值;假:0值,2)關(guān)系表達(dá)式,用關(guān)系運算符將表達(dá)式連接起來的式子,優(yōu)先級,>=,高低,==!=,結(jié)合方向:自左向右,表達(dá)式的值,關(guān)系成立,即為真,結(jié)果為1;,關(guān)系不成立,即為假,結(jié)果為0;,算術(shù)運算符,高低,例判斷下列關(guān)系表達(dá)式的結(jié)果:,(a=2*2)==2X=(1+1)==28條件>賦值,結(jié)合性:自右至左,例:,(1)intmax,a=5;b=3;max=a>b?a:b,(2)--a==b++?a++:b++(3)y=x>10?x/10:x>0?x:-x;,,結(jié)果:(1)max=5,a=5,b=3(2)表達(dá)式=4,a=4,b=5(3)若x=10,則y=10,3.8.7其他運算符及其運算,“,小結(jié):,基本數(shù)據(jù)類型運算符和表達(dá)式,小結(jié):,數(shù)據(jù)類型,構(gòu)造類型,指針類型,空類型(無值類型)void,,作業(yè):,P42.2.1,2.2,2.3,2.5,2.6,2.7,2.8,2.10,- 1.請仔細(xì)閱讀文檔,確保文檔完整性,對于不預(yù)覽、不比對內(nèi)容而直接下載帶來的問題本站不予受理。
- 2.下載的文檔,不會出現(xiàn)我們的網(wǎng)址水印。
- 3、該文檔所得收入(下載+內(nèi)容+預(yù)覽)歸上傳者、原創(chuàng)作者;如果您是本文檔原作者,請點此認(rèn)領(lǐng)!既往收益都?xì)w您。
下載文檔到電腦,查找使用更方便
14.9 積分
下載 |
- 配套講稿:
如PPT文件的首頁顯示word圖標(biāo),表示該PPT已包含配套word講稿。雙擊word圖標(biāo)可打開word文檔。
- 特殊限制:
部分文檔作品中含有的國旗、國徽等圖片,僅作為作品整體效果示例展示,禁止商用。設(shè)計者僅對作品中獨創(chuàng)性部分享有著作權(quán)。
- 關(guān) 鍵 詞:
- 語言 數(shù)據(jù)類型 運算 表達(dá)式
鏈接地址:http://m.jqnhouse.com/p-11495353.html