ch數(shù)據(jù)類型上課實用實用教案_第1頁
ch數(shù)據(jù)類型上課實用實用教案_第2頁
ch數(shù)據(jù)類型上課實用實用教案_第3頁
ch數(shù)據(jù)類型上課實用實用教案_第4頁
ch數(shù)據(jù)類型上課實用實用教案_第5頁
已閱讀5頁,還剩51頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、 基本(jbn)數(shù)據(jù)類型類型符號關鍵字數(shù)的表示范圍所占位數(shù)整型字符(z f)型實型有無(signed) int32-21474836482147483647(signed) short16-3276832767(signed) long32-2147483648214748364732unsigned int042949672953204294967295unsigned longunsigned short16065535有float323.4e-383.4e38有double641.7e-3081.7e308有char8-128127無unsigned char80255說明:數(shù)據(jù)類型所占

2、字節(jié)數(shù)隨機器(j q)硬件不同而不同,上表以IBM PC機為例第1頁/共55頁第一頁,共56頁。2.2 常量常量(chngling)與變量與變量 標識符標識符 定義:用來標識變量、常量、函數(shù)等的字符序列定義:用來標識變量、常量、函數(shù)等的字符序列 組成:組成: 只能由字母、數(shù)字、下劃線組成,且第一個字母必須是字母或下劃線只能由字母、數(shù)字、下劃線組成,且第一個字母必須是字母或下劃線 大小寫敏感大小寫敏感(mngn) 不能使用關鍵字不能使用關鍵字 討論討論(toln):判斷下列標識符號合法性:判斷下列標識符號合法性sumSumM.D.JohndayDate3days student_name #33

3、lotus_1_2_3charababove $123 _toDayM.D.John3days#33char$123ab第2頁/共55頁第二頁,共56頁。 長度長度(chngd):最長:最長32個字符個字符 命名原則:命名原則: 見名知意,采用簡潔有含義的英文單詞(或縮寫)見名知意,采用簡潔有含義的英文單詞(或縮寫) 不宜混淆不宜混淆 如如1與與L, o與與0 標識符命名標識符命名(mng mng)實例實例stu_name, sum, total, day, count, sort第3頁/共55頁第三頁,共56頁。 常量常量 在程序運行過程中,其值不能改變的量稱為常量在程序運行過程中,其值不能

4、改變的量稱為常量 常量可為任意常量可為任意(rny)數(shù)據(jù)類型數(shù)據(jù)類型 字面常量(直接常量)字面常量(直接常量) 整型:整型: 12、0、-3 實型:實型: 4.6、-1.23 字符型:字符型:a、d 字符串常量:字符串常量:”Hello”、”Good Morning!”第4頁/共55頁第四頁,共56頁。 符號常量:標識符代表常量符號常量:標識符代表常量 定義定義(dngy)格式:格式: #define 符號常量定義(dngy)舉例#define PI 3.1415926#define STAR *說明說明:符號常量一般符號常量一般使用大寫使用大寫(dxi)英英文字母表示,以區(qū)文字母表示,以區(qū)別

5、一般用于小寫字別一般用于小寫字母表示的變量。母表示的變量。第5頁/共55頁第五頁,共56頁。 符號常量符號常量(chngling)使用使用例例 符號符號(fho)常量舉例常量舉例#include #define PRICE 30void main() int num,total; num=10; total=num*PRICE; printf(total=%d,total);運行運行(ynxng)結(jié)果:結(jié)果:total=300符號常量的使用能給符號常量的使用能給程序員帶來哪些好處?程序員帶來哪些好處?第6頁/共55頁第六頁,共56頁。 變量變量 其值可以改變的量稱為其值可以改變的量稱為(chn

6、 wi)變量變量 變量也可以為任意數(shù)據(jù)類型變量也可以為任意數(shù)據(jù)類型 變量定義的一般格式變量定義的一般格式 數(shù)據(jù)類型數(shù)據(jù)類型 變量變量1,變量,變量2,變量,變量n;決定分配決定分配(fnpi)字節(jié)字節(jié)數(shù)數(shù)和數(shù)的表示范圍和數(shù)的表示范圍變量定義變量定義(dngy)舉例舉例: int a,b,c; float data;第7頁/共55頁第七頁,共56頁。 變量的使用:作強制定義變量的使用:作強制定義(dngy),也就是,也就是“先定義先定義(dngy),后使用,后使用”例例1 int student; stadent=19; /Undefined symbol stadent in function

7、 main 例例2 float a,b,c; c=a%b; /Illegal use of floating point in function main 第8頁/共55頁第八頁,共56頁。 整型數(shù)據(jù)整型數(shù)據(jù)(shj) 整型常量整型常量形式形式表示方式表示方式舉例舉例十進制整數(shù)十進制整數(shù)由數(shù)字由數(shù)字0-9和正負號表示和正負號表示123,-456,0八進制整數(shù)八進制整數(shù)由數(shù)字由數(shù)字0開頭開頭,后跟數(shù)字后跟數(shù)字07表示表示0123,011十六進制整數(shù)十六進制整數(shù)由由0 x開頭開頭,后跟后跟09,af,AF表示表示0 x123,0Xff問題:問題:0123 = ( )100 x123 = ( )10

8、0Xff = ( )10 83291255第9頁/共55頁第九頁,共56頁。整型常量的類型整型常量的類型根據(jù)其值所在范圍確定根據(jù)其值所在范圍確定(qudng)(qudng)其數(shù)據(jù)類型其數(shù)據(jù)類型在整常量后加字母在整常量后加字母l l或或L L,認為它是,認為它是long int long int 型常量型常量例例 12 與與 12L例例30000 為為int型型65536 為為long int型型第10頁/共55頁第十頁,共56頁。 整型變量整型變量 整型變量在內(nèi)存中以二進制的形式存放整型變量在內(nèi)存中以二進制的形式存放 根據(jù)占用的字節(jié)數(shù)不同根據(jù)占用的字節(jié)數(shù)不同(b tn),分為不同,分為不同(b

9、 tn)類別類別第11頁/共55頁第十一頁,共56頁。 整型變量整型變量(binling)的定的定義義整型變量定義整型變量定義(dngy)舉例舉例: int a,b; unsigned short c,d; long e, f;#include void main() int a,b,c,d; unsigned u; a=12; b=-24; u=10; c=a+u; d=b+u; printf(“a+u = %d, b+u = %dn”,c, d); 運行運行(ynxng)結(jié)果:結(jié)果:a+u = 22, b+u = -14第12頁/共55頁第十二頁,共56頁。 實型數(shù)據(jù)實型數(shù)據(jù) 實型常量實型

10、常量 表示形式:表示形式: 十進制數(shù)形式:(必須有小數(shù)點)十進制數(shù)形式:(必須有小數(shù)點) 指數(shù)形式:(指數(shù)形式:(e e或或E E之前必須有數(shù)字;指數(shù)必須為整數(shù)之前必須有數(shù)字;指數(shù)必須為整數(shù)(zhngsh)(zhngsh)) 實型常量的整數(shù)實型常量的整數(shù)(zhngsh)(zhngsh)部分為時可以省略,且部分為時可以省略,且E E或或e e后面指數(shù)必須為整數(shù)后面指數(shù)必須為整數(shù)(zhngsh)(zhngsh)。十進制數(shù)形式(xngsh)實型常量0.123, .123, 123.0, 0.0, 123.指數(shù)形式(xngsh)實型常量12.3e3 ,123E2, 1.23e4 , e-5 , 1.2

11、E-3.5 , .e3第13頁/共55頁第十三頁,共56頁。 字符常量字符常量 定義:用單引號括起來的單個普通定義:用單引號括起來的單個普通(ptng)(ptng)字符或轉(zhuǎn)義字符。字符或轉(zhuǎn)義字符。 字符常量的值:該字符的字符常量的值:該字符的ASCIIASCII碼值碼值 轉(zhuǎn)義字符:反斜線后面跟一個字符或一個代碼值表示轉(zhuǎn)義字符:反斜線后面跟一個字符或一個代碼值表示如 a A ? n 101如 A65, a97, 048 , n10轉(zhuǎn)義字符及其含義:轉(zhuǎn)義字符含義nvradddtbf“xhh轉(zhuǎn)義字符含義換行垂直制表回車響鈴單引號3位位8進制數(shù)代表的字符進制數(shù)代表的字符水平制表退格換頁換頁反斜線反斜線

12、雙引號雙引號2位位16進制數(shù)代表的字符進制數(shù)代表的字符如 101 -A 012 -n 376 - x61 -a 60 -0 483 -()例:A-101-x41-65第14頁/共55頁第十四頁,共56頁。例 轉(zhuǎn)義字符舉例(j l) #include ;void main() printf(101 x42 Cn); printf(I say:How are you?n); printf(C Programn); printf(Turbo C);A B CI say:How are you? C ProgramTurbo C第15頁/共55頁第十五頁,共56頁。 注意事項:注意事項: 單撇號中的字

13、符不能是單撇號中的字符不能是或者或者 一個一個(y )(y )字符占一個字符占一個(y )(y )字節(jié),存字節(jié),存其對應的其對應的ASCIIASCII碼碼 思考:思考:99和和9 9的區(qū)別的區(qū)別 字符型數(shù)據(jù)可像證書一樣在程序中參與相關字符型數(shù)據(jù)可像證書一樣在程序中參與相關的運算的運算a 32 結(jié)果結(jié)果(ji gu)為為65第16頁/共55頁第十六頁,共56頁。 字符變量字符變量 字符變量存放字符字符變量存放字符ASCIIASCII碼碼 charchar與與intint數(shù)據(jù)數(shù)據(jù)(shj)(shj)間可進行算術運算間可進行算術運算例例1 a=D; /* a=68; */ x=A+5; /* x=6

14、5+5; */ s=!+G /* s=33+71; */例例2 main() char c1, c2; c1=97; c2=98; printf(“%c %d”, c1, c2);第17頁/共55頁第十七頁,共56頁。/*ch2_003.c*/ #define PRICE 12.5 main() int num=3; float total; char ch1,ch2=D; total=num*PRICE; ch1=ch2-A+a; printf(“total=%f,ch1=%cn”,total,ch1); 宏定義宏定義變量定義變量定義輸出結(jié)果輸出結(jié)果運行運行(ynxng)結(jié)果:結(jié)果:tota

15、l=37.500000, ch1=d例子例子(l zi)第18頁/共55頁第十八頁,共56頁。 字符串常量字符串常量 定義:用雙引號定義:用雙引號(“”)(“”)括起來的字符序列括起來的字符序列 存儲:每個字符串尾自動加一個存儲:每個字符串尾自動加一個(y ) 0 (y ) 0 作為字符串結(jié)束標志作為字符串結(jié)束標志 字符常量與字符串常量不同字符常量與字符串常量不同h e l l o 0例 字符串“hello”hello”在內(nèi)存中例 空串 “”0a a 0例 a aa例例: char ch; ch=A; 例例: char ch; ch=A; 沒有字符串變量沒有字符串變量(binling),用字符

16、數(shù)組存放,用字符數(shù)組存放第19頁/共55頁第十九頁,共56頁。5C語言無語言無I/O語句,語句,I/O操作由函數(shù)操作由函數(shù)(hnsh)實實現(xiàn)現(xiàn)5 #include 格式(g shi)輸入輸出函數(shù) p標準輸入標準輸入(shr)函數(shù)函數(shù)scanf格式格式: scanf(“格式控制串格式控制串”,地址表),地址表)功能:按指定格式從鍵盤讀入數(shù)據(jù),存入地址表指定的功能:按指定格式從鍵盤讀入數(shù)據(jù),存入地址表指定的 存儲單元中存儲單元中,并按回車鍵結(jié)束并按回車鍵結(jié)束返值:正常,返回輸入數(shù)據(jù)個數(shù)返值:正常,返回輸入數(shù)據(jù)個數(shù)地址表:變量的地址,常用取地址運算符地址表:變量的地址,常用取地址運算符&格式

17、字符格式字符:d,i,o,x,u,c,s,f,e例 scanf(“%d”,&a); 輸入:10 則 a=10例 scanf(“%x”,&a); 輸入:11 則 a=17第20頁/共55頁第二十頁,共56頁。附加附加(fji)格式說明符(修飾符)格式說明符(修飾符)例 scanf(“%4d%2d%2d”,&yy,&mm,&dd); 輸入(shr) 19991015 則1999yy, 10 mm, 15 dd例 scanf(“%3d%*4d%f”,&k,&f); 輸入(shr) 12345678765.43 則123k, 8765.43f例

18、scanf(“%2d %*3d %2d”,&a,&b); 輸入 12 345 67 則12a, 67b例 scanf(“%3c%2c”,&c1,&c2); 輸入 abcde 則ac1, d c2l修飾符修飾符功功 能能hm*用于用于d,o,xd,o,x前,指定輸入為前,指定輸入為shortshort型整數(shù)型整數(shù)用于用于d,o,xd,o,x前,指定輸入為前,指定輸入為longlong型整數(shù)型整數(shù)用于用于e,fe,f前,指定輸入為前,指定輸入為doubledouble型實數(shù)型實數(shù)指定輸入數(shù)據(jù)寬度,遇空格或不可轉(zhuǎn)換字符則結(jié)束指定輸入數(shù)據(jù)寬度,遇空格或不可轉(zhuǎn)換字符則結(jié)束

19、抑制符,指定輸入項讀入后不賦給變量抑制符,指定輸入項讀入后不賦給變量第21頁/共55頁第二十一頁,共56頁。輸入分隔符的指定輸入分隔符的指定一般以空格一般以空格(kn )(kn )、TABTAB或回車鍵作為分隔符或回車鍵作為分隔符其它字符做分隔符:格式串中兩個格式符間字符其它字符做分隔符:格式串中兩個格式符間字符例 scanf(“%d%o%x”,&a,&b,&c); printf(“a=%d,b=%d,c=%dn”,a,b,c); 輸入(shr) 123 123 123 輸出 a=123,b=83,c=291例 scanf(“%d:%d:%d”,&h,&

20、m,&s); 輸入(shr) 12:30:45 則12 h, 30 m, 45 s例 scanf(“%d,%d”,&a,&b) 輸入 3,4 則3a, 4 b例 scanf(“a=%d,b=%d,c=%d”,&a,&b,&c); 輸入 a=12,b=24,c=36 第22頁/共55頁第二十二頁,共56頁。2.3 2.3 不同不同(b tn)(b tn)類型數(shù)據(jù)間的轉(zhuǎn)換類型數(shù)據(jù)間的轉(zhuǎn)換 隱式轉(zhuǎn)換隱式轉(zhuǎn)換(zhunhun)(zhunhun) 什么情況下發(fā)生什么情況下發(fā)生 運算轉(zhuǎn)換運算轉(zhuǎn)換(zhunhun)-(zhunhun)-不同類型數(shù)據(jù)混合運算時不

21、同類型數(shù)據(jù)混合運算時 賦值轉(zhuǎn)換賦值轉(zhuǎn)換(zhunhun)-(zhunhun)-把一個值賦給與其類型不同的變量時把一個值賦給與其類型不同的變量時 輸出轉(zhuǎn)換輸出轉(zhuǎn)換(zhunhun)-(zhunhun)-輸出時轉(zhuǎn)換輸出時轉(zhuǎn)換(zhunhun)(zhunhun)成指定的輸出格式成指定的輸出格式 函數(shù)調(diào)用轉(zhuǎn)換函數(shù)調(diào)用轉(zhuǎn)換(zhunhun)-(zhunhun)-實參與形參類型不一致時轉(zhuǎn)換實參與形參類型不一致時轉(zhuǎn)換(zhunhun)(zhunhun)a 32 int age;age = 11.1char name=a;printf(“%dn”,name);第23頁/共55頁第二十三頁,共56頁。 運算轉(zhuǎn)換

22、規(guī)則運算轉(zhuǎn)換規(guī)則: :不同不同(b tn)(b tn)類型數(shù)據(jù)運算時先自動轉(zhuǎn)換成同一類型類型數(shù)據(jù)運算時先自動轉(zhuǎn)換成同一類型doublefloatlongunsignedintchar,short低低高高說明說明:必定的轉(zhuǎn)換必定的轉(zhuǎn)換運算對象類型不同時轉(zhuǎn)換運算對象類型不同時轉(zhuǎn)換第24頁/共55頁第二十四頁,共56頁。 char ch; int i; float f; double d;ch/i + f*d - (f+i)intintdoubledoublefloatdoubledoubledouble例例1intintdoubledoubledoubledoubledoubledouble10+

23、a +i*f - d/l例2 int i;float f;double d;long l;第25頁/共55頁第二十五頁,共56頁。 顯示轉(zhuǎn)換顯示轉(zhuǎn)換可以利用強制類型轉(zhuǎn)換將一個表達式轉(zhuǎn)換成所需類型可以利用強制類型轉(zhuǎn)換將一個表達式轉(zhuǎn)換成所需類型 一般形式一般形式(xngsh)(xngsh):(類型名)(表達式):(類型名)(表達式) 例例: (int)(x+y): (int)(x+y) (int)x+y (int)x+y (double)(3)/2 (double)(3)/2 (int)3.6 (int)3.6 說明:強制轉(zhuǎn)換得到所需類型的中間變量,原變量類型不變說明:強制轉(zhuǎn)換得到所需類型的中間變

24、量,原變量類型不變 第26頁/共55頁第二十六頁,共56頁。例例 main() float x; int i; x=3.6; i=(int)x; printf(“x=%f,i=%d”,x,i); 結(jié)果結(jié)果(ji gu):x=3.600000,i=3較高類型向較低類型轉(zhuǎn)換時可能發(fā)生精度(jn d)損失問題第27頁/共55頁第二十七頁,共56頁。2.4 2.4 算術算術(sunsh)(sunsh)運算符和算術運算符和算術(sunsh)(sunsh)表達式表達式 C運算符簡介運算符簡介(jin ji)C運運算算符符算術運算符算術運算符 :(:(+ - + - * * / % + - / % + -)

25、關系運算符關系運算符 :(:( = != = !=)邏輯運算符邏輯運算符 :(!:(! & |& |)位位 運運 算算 符:(符:( | & | &)賦值運算符賦值運算符 :(:(= = 及其擴展)及其擴展)條件運算符條件運算符 :(:(?:?:)逗號運算符逗號運算符 :(:(, ,)指針運算符指針運算符 :(:(* * & &)求求 字字 節(jié)節(jié) 數(shù):(數(shù):(sizeofsizeof)強制類型轉(zhuǎn)換:(類型)強制類型轉(zhuǎn)換:(類型)分量運算符分量運算符 :(:(. -. -)下標運算符下標運算符 :(:()其它其它 :(:(( ) -( ) -)學習

26、運算符應注意學習運算符應注意 運算符功能運算符功能 與運算量關系與運算量關系(gun x)(gun x) 要求運算量個數(shù)要求運算量個數(shù) 要求運算量類型要求運算量類型 運算符優(yōu)先級別運算符優(yōu)先級別 結(jié)合方向結(jié)合方向 結(jié)果的類型結(jié)果的類型第28頁/共55頁第二十八頁,共56頁。 基本的算術運算符基本的算術運算符 +加法運算或正值運算符加法運算或正值運算符 -減法運算或負值運算符減法運算或負值運算符 *乘法運算符乘法運算符 /除法除法(chf)運算符,求商運算符,求商,兩個整數(shù)相除結(jié)果為整數(shù)兩個整數(shù)相除結(jié)果為整數(shù) %模運算符,求余,要求兩則均為整型數(shù)據(jù)模運算符,求余,要求兩則均為整型數(shù)據(jù)3+5、+3

27、5-2、-33*55/37%4第29頁/共55頁第二十九頁,共56頁。例 5/2 = -5/2.0 =例 5%2 = -5%2 = 5%-2 = 1%10 = 5%1 = 5.5%22-2.51-110( )1取模的余數(shù)符號由取模的余數(shù)符號由分子分子(fnz)(被除(被除數(shù)決定)數(shù)決定)第30頁/共55頁第三十頁,共56頁。算術表達式和運算符的優(yōu)先級和結(jié)合性算術表達式和運算符的優(yōu)先級和結(jié)合性算術表達式:用算術運算符和括號將運算對象連接起來的、符合算術表達式:用算術運算符和括號將運算對象連接起來的、符合C C語法規(guī)則語法規(guī)則的式子。的式子。求表達式的值:求表達式的值:先按運算符的優(yōu)先級別高低次序

28、先按運算符的優(yōu)先級別高低次序(cx)(cx)執(zhí)行;執(zhí)行;再一個運算對象兩則的運算賦的優(yōu)先級別相同,則按規(guī)定的再一個運算對象兩則的運算賦的優(yōu)先級別相同,則按規(guī)定的“結(jié)合方向結(jié)合方向”處處理。理。a*b/c-1.5+aa b * c / d第31頁/共55頁第三十一頁,共56頁。 自增自增+、自減運算符、自減運算符 作用:使變量值加作用:使變量值加1或減或減1 種類:種類: 前置前置 +i, -i (先執(zhí)行先執(zhí)行(zhxng)i+1或或i-1,再使用,再使用i值值) 后置后置 i+,i- (先使用先使用i值值,再執(zhí)行再執(zhí)行(zhxng)i+1或或i-1) int a=3; int b=+a; in

29、t c=a+;4a a值值表達式值表達式值a a值值表達式值表達式值+a+aa+a+345444則:則:a:5,b:4,c:4。第32頁/共55頁第三十二頁,共56頁。 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=4,j=4/k=3,j=4/k=3,j=4/4/4/3/3/c=20,a=4/c=20,a=4/c=15,a=4/c=15,a=4例例第33頁/共55頁第三十三頁,共56頁。 注意說明:注意說明: 只能用

30、于變量,不能用于常量只能用于變量,不能用于常量(chngling)(chngling)或表達式;或表達式; 結(jié)合方向結(jié)合方向“自右向左自右向左”; 優(yōu)先級別:優(yōu)先級別: - - + - - - - + - - * * / % - + - / % - + - 自增(減)運算常用于循環(huán)語句中循環(huán)變量自動加(減)自增(減)運算常用于循環(huán)語句中循環(huán)變量自動加(減)1 1或指針變量,使或指針變量,使指針指向下一個地址指針指向下一個地址5+ () (a+b)+ ()i+ ()例例1 1解答解答(jid)(jid): -i+ -i+ -(i+) -(i+) i=3; printf(“%d”,-i+); /-

31、3 i=3; printf(“%d”,-i+); /-3 例例1: -i+ i=3; printf(“%d”,-i+); 例例2: j+k; (j+)+k;第34頁/共55頁第三十四頁,共56頁。 有關表達式使用中的問題有關表達式使用中的問題(wnt)說明說明 表達式中包含多個自加、自減運算時,很容易出錯表達式中包含多個自加、自減運算時,很容易出錯例例1 1: 如如i3,則,則ki結(jié)果:結(jié)果:k3,i4例例2 2: 如如i3,則,則(i+) + (i+) + (i+)結(jié)果:結(jié)果:9,i6例例3 3: 如如i3,則,則(+ i) + (+ i) + (+ i)結(jié)果:結(jié)果:16,i6第35頁/共5

32、5頁第三十五頁,共56頁。 i+ji+j,應如何結(jié)合?,應如何結(jié)合? 調(diào)用函數(shù)時,實參數(shù)調(diào)用函數(shù)時,實參數(shù)(cnsh)(cnsh)地求值順序,地求值順序,c c并無統(tǒng)一規(guī)定并無統(tǒng)一規(guī)定C C編譯在處理時盡可能多地(自左而右)將若干個編譯在處理時盡可能多地(自左而右)將若干個字符組成一個運算符。所以應該為字符組成一個運算符。所以應該為(i+)+j(i+)+j舉例:如舉例:如i i3 3,則,則printf(printf(“%d,%d%d,%d”,i,i+),i,i+)解答:解答:若對參數(shù)的求值順序為若對參數(shù)的求值順序為自右而左自右而左,打印,打印4,3 4,3 且且 i=4;i=4;若對參數(shù)的求

33、值順序為若對參數(shù)的求值順序為自左而右自左而右,打印,打印3,3 3,3 且且 i=4;i=4;第36頁/共55頁第三十六頁,共56頁。2.5 賦值運算符和賦值表達式賦值運算符和賦值表達式 簡單賦值運算符簡單賦值運算符“” 作用:將一個作用:將一個(y )數(shù)據(jù)賦給一個數(shù)據(jù)賦給一個(y )變量變量常量常量(chngling)或表達式或表達式只能只能(zh nn)是變量,是變量,不能是常量或表達式不能是常量或表達式例例 3=x-2*y;a+b=3;例例 a3; a(a+b)*c第37頁/共55頁第三十七頁,共56頁。賦值轉(zhuǎn)換規(guī)則:使賦值號右邊(yu bian)表達式值自動轉(zhuǎn)換成其左邊變量的類型例例1

34、 float f; int i; i=10; f=i; 則則 f=10.0例例2 int i; i=2.56; /結(jié)果結(jié)果(ji gu)i=2;第38頁/共55頁第三十八頁,共56頁。 賦值表達式賦值表達式 定義:由賦值運算符將一個變量定義:由賦值運算符將一個變量(binling)(binling)和一個表達式連接起來的式子,和一個表達式連接起來的式子,叫賦值表達式。叫賦值表達式。 一般形式:一般形式: 賦值表達式的值與變量賦值表達式的值與變量(binling)(binling)值相等值相等, ,且可嵌套且可嵌套第39頁/共55頁第三十九頁,共56頁。 結(jié)合結(jié)合(jih)方向:自右向左方向:自

35、右向左優(yōu)先級優(yōu)先級: 14例例: a=b=c=5 a=(b=5) a=5+(c=6) a=(b=4)+(c=6) a=(b=10)/(c=2)/表達式值為表達式值為5,a,b,c值為值為5/ b=5;a=5/表達式值表達式值11,c=6,a=11/表達式值表達式值10,a=10,b=4,c=6/表達式值表達式值5,a=5,b=10,c=2第40頁/共55頁第四十頁,共56頁。 復合(fh)的賦值運算符+= -= *= /= %= = = &= = |=a+=3a=a+3x*=y+8x=x*(y+8)x%=3x=x%3例例: a=12; a+=a-=a*a/a=-264 等價等價(dng

36、ji)于于a=a+(a=a-(a*a)例例: int a=2; a%=4-1; a+=a*=a-=a*=3; /a=0 等價等價(dngji)于于a=a+(a=a*(a=a-(a=a*3)第41頁/共55頁第四十一頁,共56頁。#include void main() i=8;j=10; int i,j,m=0,n=0;m+=i+;n-=-j;printf(i=%d,j=%d,m=%d,n=%dn,i,j,m,n);分析程序結(jié)果分析程序結(jié)果(ji gu):m=+i;n=j+;printf(%d,%d,%d,%dn,i,j,m,n);int i,j;第42頁/共55頁第四十二頁,共56頁。2.6

37、 逗號(duho)運算符和逗號(duho)表達式 形式:表達式形式:表達式1,1,表達式表達式2,2,表達式表達式n n 結(jié)合結(jié)合(jih)(jih)性性: :從左向右從左向右 優(yōu)先級優(yōu)先級: 15: 15 逗號表達式的值:等于表達式逗號表達式的值:等于表達式n n的值的值第43頁/共55頁第四十三頁,共56頁。例例1 a=3*5,a*4 a=3*5,a*4,a+5例例2 x=(a=3,6*3) x=a=3,6*a例例3 a=1;b=2;c=3; printf(“%d,%d,%d”,a,b,c); printf(“%d,%d,%d”,(a,b,c),b,c); 例例4 printf(“%d,%

38、d,%d”,a,b,c) ; printf(“%d,%d,%d”,(a,b,c),b,c)/a=15,表達式值表達式值60/a=15,表達式值表達式值20/賦值表達式,表達式值賦值表達式,表達式值18,x=18/逗號逗號(duho)表達式表達式,表達式值表達式值18,x=3/1,2,3/3,2,3/其中逗號其中逗號(duho)起分隔起分隔作用作用/其中其中(qzhng)逗號為逗號運算符逗號為逗號運算符第44頁/共55頁第四十四頁,共56頁。例例:#include void main() int x,y=7; float z=4; x=(y=y+6,y/z); printf(x=%dn,x);運

39、行運行(ynxng)結(jié)果:結(jié)果:x=3第45頁/共55頁第四十五頁,共56頁。2.7 關系關系(gun x)運算符和關系運算符和關系(gun x)表達式表達式 關系運算符關系運算符 種類:種類: = = != 結(jié)合方向結(jié)合方向(fngxing):自左向右:自左向右 優(yōu)先級別:低于算術運算符而高于賦值運算符優(yōu)先級別:低于算術運算符而高于賦值運算符= =!=優(yōu)先級優(yōu)先級6(高)(高)優(yōu)先級優(yōu)先級7(低)(低)例例 ca+b /c(a+b) ab!=c /(ab)!=c a=bc /a=(bc /a=(bc)第46頁/共55頁第四十六頁,共56頁。 關系表達式的值:是邏輯關系表達式的值:是邏輯(lu j)量量“真真”或或“假假”,分別用,分別用1和和0表示。表示。例例 in

溫馨提示

  • 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

提交評論