c語言-第二章基本數(shù)據(jù)類型.ppt
《c語言-第二章基本數(shù)據(jù)類型.ppt》由會(huì)員分享,可在線閱讀,更多相關(guān)《c語言-第二章基本數(shù)據(jù)類型.ppt(80頁珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。
第二章基本數(shù)據(jù)類型,本章主要任務(wù):1、了解C語言豐富的數(shù)據(jù)類型;常量、變量的概念。2、掌握變量定義原則和符號(hào)常量定義方法。3、掌握常用基本數(shù)據(jù)類型(整型、實(shí)型、字符型)數(shù)據(jù)的常量表示、機(jī)內(nèi)存儲(chǔ)、變量分類以及掌握正確選擇數(shù)據(jù)類型。4、了解數(shù)值型數(shù)據(jù)混合運(yùn)算及類型轉(zhuǎn)換規(guī)律。5、了解:C語言的豐富運(yùn)算符,豐富的運(yùn)算符可以構(gòu)成靈活的表達(dá)式。6、掌握算術(shù)、賦值、逗號(hào)運(yùn)算符及它們構(gòu)成的表達(dá)式。7、掌握運(yùn)算符的優(yōu)先級(jí)、結(jié)合性規(guī)律。,一、C的數(shù)據(jù)類型數(shù)據(jù)類型總表,數(shù)據(jù)類型決定:1.數(shù)據(jù)占內(nèi)存字節(jié)數(shù)2.數(shù)據(jù)取值范圍3.其上可進(jìn)行的操作,基本數(shù)據(jù)類型,一、C的數(shù)據(jù)類型,說明(1)數(shù)據(jù)有類型。(2)不同的數(shù)據(jù)類型有不同的取值范圍。如有符號(hào)整數(shù)取值范圍-32768~32767,浮點(diǎn)數(shù)-3.4e-38~3.4e38。(3)不同的數(shù)據(jù)類型有不同的操作。如整型數(shù)可以取余操作,實(shí)型數(shù)據(jù)卻不行;整型、實(shí)型數(shù)據(jù)可以有加法,字符數(shù)組不行。(4)不同的數(shù)據(jù)類型即使有相同的操作有時(shí)含義也不同,如指針數(shù)據(jù)自增1與整數(shù)自增1含義是不同的。,一、C的數(shù)據(jù)類型,(5)C語言的數(shù)據(jù)類型可以構(gòu)造復(fù)雜的數(shù)據(jù)結(jié)構(gòu)。如使用結(jié)構(gòu)體數(shù)組可以構(gòu)造線性表。使用指針類型、結(jié)構(gòu)體類型可以構(gòu)造線性鏈表(棧、隊(duì)列)、樹、圖。(6)C語言中的數(shù)據(jù)有變量與常量,它們分別屬于上述這些類型。,0、標(biāo)識(shí)符定義:用來標(biāo)識(shí)變量、常量、函數(shù)等的字符序列組成:只能由字母、數(shù)字、下劃線組成,且第一個(gè)字母必須是字母或下劃線大小寫敏感不能使用關(guān)鍵字長度:最長32個(gè)字符命名原則:見名知意不宜混淆如l與I,o與0,例:判斷下列標(biāo)識(shí)符號(hào)合法性sumSumM.D.JohndayDate3daysstudent_name#33lotus_1_2_3chara>b_above$123,M.D.John,3days,#33,char,$123,a>b,二、常量與變量,1、常量(1)定義在程序的運(yùn)行過程中,其值不能改變的量稱為常量。,二、常量與變量,(2)常量類型如:12、0、-3為整型常量4.6、-1.23為實(shí)型常量’a’、’d’字符常量。常量可以從字面形式即可判斷-字面常量或直接常量。,二、常量與變量,(3)符號(hào)常量#definePI3.1416使用符號(hào)常量的好處:含義清楚、見名知意。修改方便、一改全改。,二、常量與變量,2、變量(1)定義在程序的運(yùn)行過程中,其值可以改變的量稱為變量。,二、常量與變量,(2)變量名(用標(biāo)識(shí)符表示)、變量在內(nèi)存中占據(jù)的存儲(chǔ)單元、變量值三者關(guān)系。變量名在程序運(yùn)行過程中不會(huì)改變,變量的值可以改變。變量名遵守標(biāo)識(shí)符準(zhǔn)則。,二、常量與變量,(2)C語言中變量:“先定義,后使用”。C要求對(duì)所有用到的變量做強(qiáng)制定義。只有申明過的變量才可以在程序中使用,這使得變量名的拼寫錯(cuò)誤容易發(fā)現(xiàn)。申明的變量屬于確定的類型,編譯系統(tǒng)可方便地檢查變量所進(jìn)行運(yùn)算的合法性。在編譯時(shí)根據(jù)變量類型可以為變量確定存儲(chǔ)空間,“先定義后使用”使程序效率高。,三、整型數(shù)據(jù),1、整型常數(shù)的表示方法1)十進(jìn)制。123,-456,0。2)八進(jìn)制。以0開頭,后面跟幾位的數(shù)字(0-7)。0123=(123)8=(83)10;-011=(-11)8=(-9)10。3)十六進(jìn)制。以0 x開頭,后面跟幾位的數(shù)字(0-9,A-F)。0 x123=291,-0 x12=-18。,三、整型數(shù)據(jù),2、整型變量(1)整型數(shù)據(jù)在內(nèi)存中的存放形式數(shù)據(jù)在內(nèi)存中以二進(jìn)制形式存放,事實(shí)上以補(bǔ)碼形式存放。,三、整型數(shù)據(jù),例如:定義一個(gè)整型變量i=10。其內(nèi)存模型如下:,三、整型數(shù)據(jù),(2)整型變量的分類1)根據(jù)表達(dá)范圍可以分為:基本整型(int)、短整型(shortint)、長整型(longint)。用long型可以獲得大范圍的整數(shù),但同時(shí)會(huì)降低運(yùn)算速度。2)根據(jù)是否有符號(hào)可以分為:有符號(hào)(signed,默認(rèn)),無符號(hào)(unsigned)-目的:擴(kuò)大表示范圍,有些情況只需要用正整數(shù)。,三、整型數(shù)據(jù),6種整型變量:l有符號(hào)基本整型:[signed]intl有符號(hào)短整型:[signed]short[int]l有符號(hào)長整型:[signed]long[int]l無符號(hào)基本整型:unsigned[int]l無符號(hào)短整型:unsignedshort[int]l無符號(hào)長整型:unsignedlong[int],三、整型數(shù)據(jù),例如:保存整數(shù)13的各種整型數(shù)據(jù)類型。,三、整型數(shù)據(jù),三、整型數(shù)據(jù),(3)整型變量的定義格式:數(shù)據(jù)類型名變量名表;例如:voidmain(){inta,b,c,d;unsignedu;a=12;b=-24;u=10;c=a+u;d=b+u;printf(“%d,%d\n”,c,d);},三、整型數(shù)據(jù),說明:(1)變量定義時(shí),可以說明多個(gè)相同類型的變量。各個(gè)變量用“,”分隔。類型說明與變量名之間至少有一個(gè)空格間隔。(2)最后一個(gè)變量名之后必須用“;”結(jié)尾。(3)變量說明必須在變量使用之前。(4)可以在定義變量的同時(shí),對(duì)變量進(jìn)行初始化。,三、整型數(shù)據(jù),(4)整型數(shù)據(jù)的溢出整型數(shù)最大允許值+1,最小允許值-1,會(huì)出現(xiàn)什么情況?結(jié)論:超出范圍就發(fā)生“溢出”,運(yùn)行時(shí)不報(bào)錯(cuò)。,例2-2a:整型數(shù)據(jù)的溢出voidmain(){inta,b;a=32767;b=a+1;printf("\na=%d,a+1=%d\n",a,b);a=-32768;b=a-1;printf("\na=%d,a-1=%d\n",a,b);getch();}a=32767,a+1=-32768a=-32768,a-1=32767,四、實(shí)型數(shù)據(jù),1、實(shí)型常量的表示方法(1)十進(jìn)制小數(shù)形式。由數(shù)字,小數(shù)點(diǎn)組成(必須有小數(shù)點(diǎn))。例如:.123、123.、123.0、0.0(2)指數(shù)形式。格式:aEn。例如:123e3、123E3都是實(shí)數(shù)的合法表示。,四、實(shí)型數(shù)據(jù),說明:1)字母e或E之前必須有數(shù)字,e后面的指數(shù)必須為整數(shù)。例如:e3、2.1e3.5、.e3、e都不是合法的指數(shù)形式。2)規(guī)范化的指數(shù)形式。在字母e或E之前的小數(shù)部分,小數(shù)點(diǎn)左邊應(yīng)當(dāng)有且只能有一位非0數(shù)字。用指數(shù)形式輸出時(shí),是按規(guī)范化的指數(shù)形式輸出的。例如:2.3478e2、3.0999E5、6.46832e12都屬于規(guī)范化的指數(shù)形式。3)實(shí)型常量都是雙精度,如果要指定它為單精度,可以加后綴f(實(shí)型數(shù)據(jù)類型參看實(shí)型變量部分說明)。,四、實(shí)型數(shù)據(jù),2、實(shí)型變量(1)實(shí)型數(shù)據(jù)在內(nèi)存中的存放形式一個(gè)實(shí)型數(shù)據(jù)一般在內(nèi)存中占4個(gè)字節(jié)(32位)。與整數(shù)存儲(chǔ)方式不同,實(shí)型數(shù)據(jù)是按照指數(shù)形式存儲(chǔ)的。系統(tǒng)將實(shí)型數(shù)據(jù)分為小數(shù)部分和指數(shù)部分,分別存放。,四、實(shí)型數(shù)據(jù),(2)實(shí)型變量的分類單精度(float)、雙精度(double)、長雙精度(longdouble)。,四、實(shí)型數(shù)據(jù),(3)實(shí)型數(shù)據(jù)的舍入誤差實(shí)型變量是用有限的存儲(chǔ)單元存儲(chǔ)的,因此提供的有效數(shù)字是有限的,在有效位以外的數(shù)字將被舍去,由此可能會(huì)產(chǎn)生一些誤差。,例2-3a:實(shí)型數(shù)據(jù)的舍入誤差(實(shí)型變量只能保證7位有效數(shù)字,后面的數(shù)字無意義)voidmain(){floata,b;a=123456.789e5;b=a+20;printf("a=%f,b=%f\n",a,b);printf("a=%e,b=%e\n",a,b);}a=12345678848.000000,b=12345678848.000000a=1.23457e+10,b=1.23457e+10,四、實(shí)型數(shù)據(jù),結(jié)論:由于實(shí)數(shù)存在舍入誤差,使用時(shí)要注意:(1)不要試圖用一個(gè)實(shí)數(shù)精確表示一個(gè)大整數(shù),記?。焊↑c(diǎn)數(shù)是不精確的。(2)實(shí)數(shù)一般不判斷“相等”,而是判斷接近或近似。(3)避免直接將一個(gè)很大的實(shí)數(shù)與一個(gè)很小的實(shí)數(shù)相加、相減,否則會(huì)“丟失”小的數(shù)。(4)根據(jù)要求選擇單精度、雙精度。,五、字符型數(shù)據(jù),1、字符常量(1)定義用單引號(hào)(‘’)括起來的一個(gè)字符。,五、字符型數(shù)據(jù),(2)形式:1)可顯示的字符常量直接用單引號(hào)括起來,如,’a’、’D’、’?’、’$’等都是字符常量。2)使用字符的轉(zhuǎn)義表示法表示轉(zhuǎn)義表示格式:‘\ddd’或‘\xhh’(其中ddd,hh是字符的ASCII碼,ddd八進(jìn)制、hh十六進(jìn)制)。注意:不可寫成‘\0 xhh’或‘\0ddd’(整數(shù))。,五、字符型數(shù)據(jù),(3)預(yù)定義常用轉(zhuǎn)義字符,五、字符型數(shù)據(jù),2、字符變量(1)定義字符型變量是用來存放字符數(shù)據(jù),同時(shí)只能存放一個(gè)字符。所有編譯系統(tǒng)都規(guī)定以一個(gè)字節(jié)來存放一個(gè)字符,或者說,一個(gè)字符變量在內(nèi)存中占一個(gè)字節(jié)。,五、字符型數(shù)據(jù),3、字符數(shù)據(jù)在內(nèi)存中的存儲(chǔ)形式字符數(shù)據(jù)在內(nèi)存中的存儲(chǔ)形式:以字符的ASCII碼,以二進(jìn)制形式存放,占用1個(gè)字節(jié)。,五、字符型數(shù)據(jù),說明:1)字符數(shù)據(jù)以ASCII碼存儲(chǔ)的形式與整數(shù)的存儲(chǔ)形式類似,這使得字符型數(shù)據(jù)和整型數(shù)據(jù)之間可以通用(當(dāng)作整型量)。2)可以將整型量賦值給字符變量,也可以將字符量賦值給整型變量。3)可以對(duì)字符數(shù)據(jù)進(jìn)行算術(shù)運(yùn)算,相當(dāng)于對(duì)它們的ASCII碼進(jìn)行算術(shù)運(yùn)算。4)一個(gè)字符數(shù)據(jù)既可以以字符形式輸出(ASCII碼對(duì)應(yīng)的字符),也可以以整數(shù)形式輸出(直接輸出ASCII碼)。,五、字符型數(shù)據(jù),例2-7a:給字符變量賦以整數(shù)(字符型、整型數(shù)據(jù)通用)voidmain()/*字符‘a(chǎn)’的各種表達(dá)方法*/{charc1=a;charc2=\x61;/*note:\x..,\...*/charc3=\141;charc4=97;charc5=0 x61;/*note:0 x..,0...*/charc6=0141;printf("\nc1=%c,c2=%c,c3=%c,c4=%c,c5=%c,c6=%c\n",c1,c2,c3,c4,c5,c6);printf("c1=%d,c2=%d,c3=%d,c4=%d,c5=%d,c6=%d\n",c1,c2,c3,c4,c5,c6);getch();}c1=a,c2=a,c3=a,c4=a,c5=a,c6=ac1=97,c2=97,c3=97,c4=97,c5=97,c6=97過程:整型數(shù)=>機(jī)內(nèi)表示(兩個(gè)字節(jié))=>取低8位賦值給字符變量,五、字符型數(shù)據(jù),例2-8a:大小寫字母的轉(zhuǎn)換(ASCII碼表:小寫字母比對(duì)應(yīng)的大寫字母的ASCII碼大32,本例還可以看出允許字符數(shù)據(jù)與整數(shù)直接進(jìn)行算術(shù)運(yùn)算,運(yùn)算時(shí)字符數(shù)據(jù)用ASCII碼值參與運(yùn)算)voidmain(){charc1,c2,c3;c1=a;c2=b;c1=c1-32;c2=c2-32;c3=130;printf("\n%c%c%c\n",c1,c2,c3);printf("%d%d%d\n",c1,c2,c3);getch();}AB?6566-126,五、字符型數(shù)據(jù),4、字符串常量(1)定義是一對(duì)雙引號(hào)(“”)括起來的字符序列。例如:“Howdowyoudo?”,“CHINA”,“a”,“$123.45”.,五、字符型數(shù)據(jù),(2)區(qū)分字符常量與字符串常量如“a”和‘a(chǎn)’。C語言規(guī)定:在每個(gè)字符串的結(jié)尾加一個(gè)“字符串結(jié)束標(biāo)志”,以便系統(tǒng)據(jù)此判斷字符串是否結(jié)束。C規(guī)定以‘\0’(ASCII碼為0的字符)作為字符串結(jié)束標(biāo)志。,五、字符型數(shù)據(jù),如:“CHINA”在內(nèi)存中的存儲(chǔ)應(yīng)當(dāng)是:(長度=6),五、字符型數(shù)據(jù),(3)不能將字符串賦給字符變量。(4)C語言沒有專門的字符串變量,如果想將一個(gè)字符串存放在變量中,可以使用字符數(shù)組。即用一個(gè)字符數(shù)組來存放一個(gè)字符串,數(shù)組中每一個(gè)元素存放一個(gè)字符。,六、各數(shù)值型數(shù)據(jù)的混合運(yùn)算,整型(包括int,short,long)和實(shí)型(包括float,double)數(shù)據(jù)可以混合運(yùn)算,另外字符型數(shù)據(jù)和整型數(shù)據(jù)可以通用,因此,整型、實(shí)型、字符型數(shù)據(jù)之間可以混合運(yùn)算。例如:表達(dá)式10+’a’+1.5-8765.1234*’b’是合法的。在進(jìn)行運(yùn)算時(shí),不同類型的數(shù)據(jù)先轉(zhuǎn)換成同一類型,然后進(jìn)行計(jì)算,轉(zhuǎn)換的方法有兩種:自動(dòng)轉(zhuǎn)換(隱式轉(zhuǎn)換);強(qiáng)制轉(zhuǎn)換。,六、各數(shù)值型數(shù)據(jù)的混合運(yùn)算,1、自動(dòng)動(dòng)轉(zhuǎn)換(隱式轉(zhuǎn)換)自動(dòng)轉(zhuǎn)換發(fā)生在不同類型數(shù)據(jù)進(jìn)行混合運(yùn)算時(shí),由編譯系統(tǒng)自動(dòng)完成。,六、各數(shù)值型數(shù)據(jù)的混合運(yùn)算,轉(zhuǎn)換規(guī)則:,,六、各數(shù)值型數(shù)據(jù)的混合運(yùn)算,1)類型不同,先轉(zhuǎn)換為同一類型,然后進(jìn)行運(yùn)算。2)圖中縱向的箭頭表示當(dāng)運(yùn)算對(duì)象為不同類型時(shí)轉(zhuǎn)換的方向??梢钥吹郊^由低級(jí)別數(shù)據(jù)類型指向高級(jí)別數(shù)據(jù)類型,即數(shù)據(jù)總是由低級(jí)別向高級(jí)別轉(zhuǎn)換。即按數(shù)據(jù)長度增加的方向進(jìn)行,保證精度不降低。,六、各數(shù)值型數(shù)據(jù)的混合運(yùn)算,3)圖中橫向向左的箭頭表示必定的轉(zhuǎn)換(不必考慮其它運(yùn)算對(duì)象)。4)賦值運(yùn)算,如果賦值號(hào)“=”兩邊的數(shù)據(jù)類型不同,賦值號(hào)右邊的類型轉(zhuǎn)換為左邊的類型。這種轉(zhuǎn)換是截?cái)嘈偷霓D(zhuǎn)換,不會(huì)四舍五入。,六、各數(shù)值型數(shù)據(jù)的混合運(yùn)算,強(qiáng)制轉(zhuǎn)換是通過類型轉(zhuǎn)換運(yùn)算來實(shí)現(xiàn)。一般形式:(類型說明符)表達(dá)式功能:把表達(dá)式的結(jié)果強(qiáng)制轉(zhuǎn)換為類型說明符所表示的類型。,六、各數(shù)值型數(shù)據(jù)的混合運(yùn)算,例如:(int)a將a的結(jié)果強(qiáng)制轉(zhuǎn)換為整型量。(int)(x+y)將x+y的結(jié)果強(qiáng)制轉(zhuǎn)換為整型量。(float)a+b將a的內(nèi)容強(qiáng)制轉(zhuǎn)換為浮點(diǎn)數(shù),再與b相加。,六、各數(shù)值型數(shù)據(jù)的混合運(yùn)算,說明:1)類型說明和表達(dá)式都需要加括號(hào)(單個(gè)變量可以不加括號(hào))2)無論隱式轉(zhuǎn)換,強(qiáng)制轉(zhuǎn)換都是臨時(shí)轉(zhuǎn)換,不改變數(shù)據(jù)本身的類型和值。,六、各數(shù)值型數(shù)據(jù)的混合運(yùn)算,voidmain(){floatf=5.75;printf("(int)f=%d\n",(int)f);/*將f的結(jié)果強(qiáng)制轉(zhuǎn)換為整型,輸出*/printf("f=%f\n",f);/*輸出f的值*/}結(jié)果:(int)f=5f=5.750000,七、C運(yùn)算符簡介,運(yùn)算符:狹義的運(yùn)算符是表示各種運(yùn)算的符號(hào)。表達(dá)式:使用運(yùn)算符將常量、變量、函數(shù)連接起來,構(gòu)成表達(dá)式。,七、C運(yùn)算符簡介,C的運(yùn)算符有以下幾類:,八、算術(shù)運(yùn)算符和算術(shù)表達(dá)式,1、算術(shù)運(yùn)算符+(加法運(yùn)算符。如3+5)-(減法運(yùn)算符或負(fù)值運(yùn)算符。如5-2,-3)*(乘法運(yùn)算符。如3*5)/(除法運(yùn)算符。如5/3,5.0/3)%(模運(yùn)算符或求余運(yùn)算符,%要求兩側(cè)均為整型數(shù)據(jù)。如7%4的值為3)。除了負(fù)值運(yùn)算符-單目運(yùn)算符外,其它都是雙目運(yùn)算符。,說明,(1)兩個(gè)整數(shù)相除的結(jié)果為整數(shù),如5/3的結(jié)果為1,舍去小數(shù)部分。但是如果除數(shù)或被除數(shù)中有一個(gè)為負(fù)值,則舍入的方向是不固定的,多數(shù)機(jī)器采用“向0取整”的方法(實(shí)際上就是舍去小數(shù)部分,注意:不是四舍五入)。,說明,,說明,(2)如果參加+,-,*,/運(yùn)算的兩個(gè)數(shù)有一個(gè)為實(shí)數(shù),則結(jié)果為double型,因?yàn)樗袑?shí)數(shù)都按double型進(jìn)行計(jì)算。(3)求余運(yùn)算符%,要求兩個(gè)操作數(shù)均為整型,結(jié)果為兩數(shù)相除所得的余數(shù)。求余也稱為求模。一般情況,余數(shù)的符號(hào)與被除數(shù)符號(hào)相同。,,2、算術(shù)表達(dá)式用算術(shù)運(yùn)算符和括號(hào)將運(yùn)算對(duì)象(也稱操作數(shù))連接起來的、符合C語法規(guī)則的式子,稱為算術(shù)表達(dá)式。運(yùn)算對(duì)象可以是常量、變量、函數(shù)等。例如:a*b/c-1.5+’a’,,注意:(1)C語言算術(shù)表達(dá)式的乘號(hào)(*)不能省略。例如:數(shù)學(xué)式b2-4ac,相應(yīng)的C表達(dá)式應(yīng)該寫成:b*b-4*a*c。(2)C語言表達(dá)式中只能出現(xiàn)字符集允許的字符。例如,數(shù)學(xué)πr2相應(yīng)的C表達(dá)式應(yīng)該寫成:PI*r*r。(其中PI是已經(jīng)定義的符號(hào)常量),,(3)C語言算術(shù)表達(dá)式不允許有分子分母的形式。例如,(a+b)/(c+d)。(4)C語言算術(shù)表達(dá)式只使用圓括號(hào)改變運(yùn)算的優(yōu)先順序(不要指望用{}[])??梢允褂枚鄬訄A括號(hào),此時(shí)左右括號(hào)必須配對(duì),運(yùn)算時(shí)從內(nèi)層括號(hào)開始,由內(nèi)向外依次計(jì)算表達(dá)式的值。,,3、(算術(shù))運(yùn)算符的優(yōu)先級(jí)與結(jié)合性C語言規(guī)定了進(jìn)行表達(dá)式求值過程中,各運(yùn)算符的“優(yōu)先級(jí)”和“結(jié)合性”。,,(1)C語言規(guī)定了運(yùn)算符的“優(yōu)先級(jí)”和“結(jié)合性”。在表達(dá)式求值時(shí),先按運(yùn)算符的“優(yōu)先級(jí)別”高低次序執(zhí)行。如表達(dá)式:a-b*c等價(jià)于a-(b*c)“*”運(yùn)算符優(yōu)先級(jí)高于“-”運(yùn)算符。,,(2)如果在一個(gè)運(yùn)算對(duì)象兩側(cè)的運(yùn)算符的優(yōu)先級(jí)別相同,則按規(guī)定的“結(jié)合方向”處理。例如:a-b+c,到底是(a-b)+c還是a-(b+c)?(b先與a參與運(yùn)算還是先于c參與運(yùn)算?)+/-運(yùn)算優(yōu)先級(jí)別相同,結(jié)合性為“自左向右”,即就是說b先與左邊的a結(jié)合。所以a-b+c等價(jià)于(a-b)+c。,,(3)在書寫多個(gè)運(yùn)算符的表達(dá)式時(shí),應(yīng)當(dāng)注意各個(gè)運(yùn)算符的優(yōu)先級(jí),確保表達(dá)式中的運(yùn)算符能以正確的順序參與運(yùn)算。對(duì)于復(fù)雜表達(dá)式為了清晰起見可以加圓括號(hào)“()”強(qiáng)制規(guī)定計(jì)算順序。,九、賦值運(yùn)算符和賦值表達(dá)式,1、賦值運(yùn)算符、賦值表達(dá)式賦值運(yùn)算符:賦值符號(hào)“=”就是賦值運(yùn)算符。賦值表達(dá)式:由賦值運(yùn)算符組成的表達(dá)式稱為賦值表達(dá)式。一般形式:,〈變量〉〈賦值符〉〈表達(dá)式〉,,賦值表達(dá)式的求解過程:將賦值運(yùn)算符右側(cè)的表達(dá)式的值賦給左側(cè)的變量,同時(shí)整個(gè)賦值表達(dá)式的值就是剛才所賦的值。賦值的含義:將賦值運(yùn)算符右邊的表達(dá)式的值存放到左邊變量名標(biāo)識(shí)的存儲(chǔ)單元中。例如:x=10+y;執(zhí)行賦值運(yùn)算(操作),將10+y的值賦給變量x,同時(shí)整個(gè)表達(dá)式的值就是剛才所賦的值。,,說明:(1)賦值運(yùn)算符左邊必須是變量,右邊可以是常量、變量、函數(shù)調(diào)用或常量、變量、函數(shù)調(diào)用組成的表達(dá)式。例如:x=10y=x+10y=func()都是合法的賦值表達(dá)式。,,(2)賦值符號(hào)“=”不同于數(shù)學(xué)的等號(hào),它沒有相等的含義。(“==”相等)例如:C語言中x=x+1是合法的(數(shù)學(xué)上不合法),它的含義是取出變量x的值加1,再存放到變量x中。,,(3)賦值運(yùn)算時(shí),當(dāng)賦值運(yùn)算符兩邊數(shù)據(jù)類型不同時(shí),將由系統(tǒng)自動(dòng)進(jìn)行類型轉(zhuǎn)換。轉(zhuǎn)換原則:先將賦值號(hào)右邊表達(dá)式類型轉(zhuǎn)換為左邊變量的類型,然后賦值。,,(4)C語言的賦值符號(hào)“=”除了表示一個(gè)賦值操作外,還是一個(gè)運(yùn)算符,也就是說賦值運(yùn)算符完成賦值操作后,整個(gè)賦值表達(dá)式還會(huì)產(chǎn)生一個(gè)所賦的值,這個(gè)值還可以利用。賦值表達(dá)式的求解過程是:l先計(jì)算賦值運(yùn)算符右側(cè)的“表達(dá)式”的值l將賦值運(yùn)算符右側(cè)“表達(dá)式”的值賦值給左側(cè)的變量。整個(gè)賦值表達(dá)式的值就是被賦值變量的值。,應(yīng)用舉例,例如:分析x=y=z=3+5這個(gè)表達(dá)式。運(yùn)算步驟:,,2、復(fù)合賦值運(yùn)算符+=,-=,*=,/=,%=,>=,j=i++;的區(qū)別。,,(2)自增、減運(yùn)算符只用于變量,而不能用于常量或表達(dá)式。例如:6++,(a+b)++,(-i)++都不合法。,,(3)++,--的結(jié)合方向是“自右向左”(與一般算術(shù)運(yùn)算符不同)。例如:-i++?-(i++)合法。,,(4)自增、自減運(yùn)算符常用于循環(huán)語句中,使循環(huán)變量自動(dòng)加1,也用于指針變量,使指針指向下一個(gè)地址。,十、逗號(hào)運(yùn)算符和逗號(hào)表達(dá)式,1、逗號(hào)表達(dá)式的一般形式:表達(dá)式1,表達(dá)式2,…表達(dá)式n例如:3+5,6+8,,2、逗號(hào)表達(dá)式的求解過程:自左向右,求解表達(dá)式1,求解表達(dá)式2,…,求解表達(dá)式n。整個(gè)逗號(hào)表達(dá)式的值是表達(dá)式n的值。例如:逗號(hào)表達(dá)式3+5,6+8的值為14。,,voidmain(){intx,a;x=(a=3,6*3);/*a=3x=18*/printf("%d,%d\n",a,x);x=a=3,6*a;/*a=3x=3*/printf("%d,%d\n",a,x);}輸出:3,183,3,,3、逗號(hào)表達(dá)式主要作用:將若干表達(dá)式“串聯(lián)”起來,表示一個(gè)順序的操作(計(jì)算),在許多情況下,使用逗號(hào)表達(dá)式的目的只是想分別得到各個(gè)表達(dá)式的值,而并非一定需要得到和使用整個(gè)逗號(hào)表達(dá)式的值。,- 1.請(qǐng)仔細(xì)閱讀文檔,確保文檔完整性,對(duì)于不預(yù)覽、不比對(duì)內(nèi)容而直接下載帶來的問題本站不予受理。
- 2.下載的文檔,不會(huì)出現(xiàn)我們的網(wǎng)址水印。
- 3、該文檔所得收入(下載+內(nèi)容+預(yù)覽)歸上傳者、原創(chuàng)作者;如果您是本文檔原作者,請(qǐng)點(diǎn)此認(rèn)領(lǐng)!既往收益都?xì)w您。
下載文檔到電腦,查找使用更方便
14.9 積分
下載 |
- 配套講稿:
如PPT文件的首頁顯示word圖標(biāo),表示該P(yáng)PT已包含配套word講稿。雙擊word圖標(biāo)可打開word文檔。
- 特殊限制:
部分文檔作品中含有的國旗、國徽等圖片,僅作為作品整體效果示例展示,禁止商用。設(shè)計(jì)者僅對(duì)作品中獨(dú)創(chuàng)性部分享有著作權(quán)。
- 關(guān) 鍵 詞:
- 語言 第二 基本 數(shù)據(jù)類型
鏈接地址:http://www.3dchina-expo.com/p-11494764.html