第03章數(shù)據(jù)類型運算符表達式tgmppt課件_第1頁
第03章數(shù)據(jù)類型運算符表達式tgmppt課件_第2頁
第03章數(shù)據(jù)類型運算符表達式tgmppt課件_第3頁
第03章數(shù)據(jù)類型運算符表達式tgmppt課件_第4頁
第03章數(shù)據(jù)類型運算符表達式tgmppt課件_第5頁
已閱讀5頁,還剩33頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、 第三章 數(shù)據(jù)類型運算符表達式 第三章 數(shù)據(jù)類型數(shù)據(jù)類型常量與變量各類數(shù)值型數(shù)據(jù)間的混合運算運算符和表達式 第三章 數(shù)據(jù)類型運算符表達式 3.1 數(shù)據(jù)類型 數(shù)據(jù)類型總表C數(shù)據(jù)類型根本類型構造類型構造類型指針類型指針類型空類型空類型void定義類型定義類型typedef字符類型char枚舉類型enum整 型實型單精度型float雙精度型double數(shù)組構造體struct共用體union短整型short長整型long整型int數(shù)據(jù)類型決議:1. 數(shù)據(jù)占內(nèi)存字節(jié)數(shù)2. 數(shù)據(jù)取值范圍3. 其上可進展的操作 第三章 數(shù)據(jù)類型運算符表達式 根本數(shù)據(jù)類型根本數(shù)據(jù)類型類型符號關鍵字數(shù)的表示范圍所占位數(shù)整型字符

2、型實型有(signed)int 根本整型16-3276832767(signed)short 短整型16-3276832767(signed)long 長整型32-21474836482147483647無16unsigned int 0655353204294967295unsigned longunsigned short16065535有float 單精度型323.4e-383.4e38有double 雙精度型641.7e-3081.7e308有char 字符型8-128127無unsigned char80255闡明:數(shù)據(jù)類型所占字節(jié)數(shù)隨機器硬件不同而不同,上表以IBM PC機為例:

3、第三章 數(shù)據(jù)類型運算符表達式 01 11 11 11 11 11 11 11int型:最大:3276710 00 00 00 00 00 00 00最小:-3276811 11 11 11 11 11 11 11unsigned int型:最大:6553500 00 00 00 00 00 00 00最小:0根本類型有常量和變量之分根本類型有常量和變量之分 第三章 數(shù)據(jù)類型運算符表達式 3.2 常量與變量常量常量定義:程序運轉(zhuǎn)時其值不能改動的量即常數(shù)定義:程序運轉(zhuǎn)時其值不能改動的量即常數(shù)分類分類: :直接常量直接常量: :整型常量整型常量 10 23 0123 0 x123 10 23 012

4、3 0 x123實型常量實型常量 3.14159 3.14159字符常量字符常量 a a nn字符串常量字符串常量 “abcabc “a a符號常量符號常量: :用標識符代表常量用標識符代表常量定義格式:定義格式: #define #define 符號常量符號常量 常量常量常變量常變量 const int c; const int c; 第三章 數(shù)據(jù)類型運算符表達式 變量變量 概念:其值可以改動的量概念:其值可以改動的量 變量名與變量值變量名與變量值 變量定義的普通格式:變量定義的普通格式: 數(shù)據(jù)類型數(shù)據(jù)類型 變量變量1,變量,變量2,變,變量量n;決議分配字節(jié)數(shù)和數(shù)的表示范圍合法標識符例:

5、int a,b,c; float data; 第三章 數(shù)據(jù)類型運算符表達式 標識符標識符作用:用來標識變量、常量、函數(shù)等的作用:用來標識變量、常量、函數(shù)等的字符序列字符序列組成:組成:只能由字母、數(shù)字、下劃線組成,且第只能由字母、數(shù)字、下劃線組成,且第一個字母必需是字母或下劃線一個字母必需是字母或下劃線區(qū)分大小寫區(qū)分大小寫不能運用關鍵字不能運用關鍵字(是系統(tǒng)中已預定義的單是系統(tǒng)中已預定義的單詞詞)長度:沒限制但不宜過長長度:沒限制但不宜過長,普通不超越普通不超越31個字符個字符命名原那么:見名知意命名原那么:見名知意例:判別以下標識符號合法性sum Sum M.D.John day Date

6、3days student_name #33 lotus_1_2_3 char ab _above $1233.2 常量與變量 第三章 數(shù)據(jù)類型運算符表達式 32個關鍵字:(由系統(tǒng)定義,不能重作其它定義)auto break case char constcontinue default do double elseenum extern float for gotoif int long register returnshort signed sizeof static structswitch typedef unsigned union voidvolatile while 第三章 數(shù)據(jù)

7、類型運算符表達式 整型數(shù)據(jù):整型常量整常數(shù)整型數(shù)據(jù):整型常量整常數(shù)三種方式:三種方式:十進制整數(shù):由數(shù)字十進制整數(shù):由數(shù)字0909和正負號表示和正負號表示. .如如 123,-123,-456,0456,0八進制整數(shù):由數(shù)字八進制整數(shù):由數(shù)字0 0開頭開頭, ,后跟數(shù)字后跟數(shù)字0707表示表示. .如如0123,0110123,011十六進制整數(shù):由十六進制整數(shù):由0 x0 x開頭開頭, ,后跟后跟09,af,AF09,af,AF表示表示. . 如如0 x123,0Xff0 x123,0Xff 第三章 數(shù)據(jù)類型運算符表達式 整型:整型變量整型:整型變量三種方式:三種方式:根本整數(shù):根本整數(shù):i

8、ntint短整型:短整型:short int short int 或或 shortshort長整型:長整型:long long 或或 long intlong int符號:符號:有符號有符號 signed int signed int 無符號無符號 unsigned intunsigned int整型常量的存儲類型? 第三章 數(shù)據(jù)類型運算符表達式 浮點型數(shù)據(jù):浮點型數(shù)據(jù):浮點型常量實數(shù)或浮點數(shù)浮點型常量實數(shù)或浮點數(shù)表示方式:表示方式:十進制數(shù)方式:必需有小數(shù)點十進制數(shù)方式:必需有小數(shù)點 如如0.123, .123, 123.0, 0.0, 123.0.123, .123, 123.0, 0.0

9、, 123.指數(shù)方式:指數(shù)方式:e e或或E E之前必需有數(shù)字;指之前必需有數(shù)字;指數(shù)必需為整數(shù)如數(shù)必需為整數(shù)如12.3e3 ,123E2, 12.3e3 ,123E2, 1.23e4 , e-5 , 1.2E-3.5 1.23e4 , e-5 , 1.2E-3.5 實型常量的類型實型常量的類型 默許默許doubledouble型型 在實型常量后加字母在實型常量后加字母f f或或F F,以為它是,以為它是float float 型型 第三章 數(shù)據(jù)類型運算符表達式 浮點型變量浮點型變量 普通4個字節(jié) float:占4字節(jié),提供7位有效數(shù)字 double:占8字節(jié),提供1516位有效數(shù)字 要留意舍

10、入誤差例 float a;a=111111.111; /* a=111111.1*/double b;b=111111.111; /* b=111111.111*/ 第三章 數(shù)據(jù)類型運算符表達式 字符型數(shù)據(jù):字符常量字符型數(shù)據(jù):字符常量定義定義: :用單引號括起來的單個普通字符或本義字符用單引號括起來的單個普通字符或本義字符. . 字符常量的值:該字符的ASCII碼值本義字符及其含義:本義字符含義nvradddtbf“xhh本義字符含義換行垂直制表回車響鈴單引號3位8進制數(shù)代表的字符程度制表退格換頁反斜線雙引號2位16進制數(shù)代表的字符如 a A ? n 101 本義字符:反斜線后面跟一個字符或

11、一個代碼值表示例 本義字符舉例(ch3_001.c,ch3_004.c) #includemain() printf(101 x42 Cn); printf(I say:How are you?n); printf(C Programn); printf(Turbo C); 第三章 數(shù)據(jù)類型運算符表達式 字符變量 char 一個字節(jié)長度 存放一個字符常量 存放的是一個字節(jié)的整數(shù)ASCII值 普通默許signed 如何輸出一個字符變量 %c %d 第三章 數(shù)據(jù)類型運算符表達式 字符常量與字符串常量不同字符串常量字符串常量定義:用雙引號定義:用雙引號( (“) )括起來的字符序列。括起來的字符序列

12、。存儲:每個字符串尾自動加一個存儲:每個字符串尾自動加一個 00 作為字符作為字符串終了標志串終了標志h e l l o 0例例 字符串字符串“hellohello在內(nèi)存中在內(nèi)存中a a 0例 a“a例 空串 “0例: char ch; ch=“A; 例: char ch; ch=A; 第三章 數(shù)據(jù)類型運算符表達式 編譯程序根據(jù)變量定義為其分配指定字節(jié)的內(nèi)存單元.地址int a=1, b=-3,c;abc2字節(jié)2字節(jié)2字節(jié)地址地址.內(nèi)存1-3隨機數(shù) 變量初始化變量初始化:定義時賦初值定義時賦初值 例: int a=2,b,c=4; float data=3.67; char ch=A; int

13、 x=1,y=1,z=1; int x=y=z=1;錯 變量的運用:先定義,后運用變量的運用:先定義,后運用例1 int student; stadent=19; /Undefined symbol statent in function main 變量定義位置:普通放在函數(shù)開頭變量定義位置:普通放在函數(shù)開頭main() int a,b=2; float data; a=1; data=(a+b)*1.2; printf(“data=%fn,data);變量定義可執(zhí)行語句main() int a,b=2; a=1; float data; data=(a+b)*1.2; printf(“dat

14、a=%fn,data); 第三章 數(shù)據(jù)類型運算符表達式 整型變量整型變量占字節(jié)數(shù)隨機器不同而不同占字節(jié)數(shù)隨機器不同而不同, ,普通占一個機器字普通占一個機器字shortintlongshortintlong可用可用sizeof(sizeof(類型標識符丈量類型標識符丈量實型變量實型變量floatfloat:占:占4 4字節(jié),提供字節(jié),提供7 7位有效數(shù)字位有效數(shù)字doubledouble:占:占8 8字節(jié),提供字節(jié),提供15161516位有效數(shù)字位有效數(shù)字字符型變量字符型變量字符變量存放字符字符變量存放字符ASCIIASCII碼碼charchar與與intint數(shù)據(jù)間可進展算術運算數(shù)據(jù)間可進展

15、算術運算例 float a;a=111111.111; /* a=111111.1*/double b;b=111111.111; /* b=111111.111*/例 a=D; /* a=68; */ x=A+5; /* x=65+5; */ s=!+G /* s=33+71; */沒有字符串變量,用字符數(shù)組存放 第三章 數(shù)據(jù)類型運算符表達式 例 /*ch3_003.c*/ #include #define PRICE 12.5 main() int num=3; float total; char ch1,ch2=D; total=num*PRICE; ch1=ch2-A+a; print

16、f(“total=%f,ch1=%cn,total,ch1); 宏定義變量定義輸出結果運轉(zhuǎn)結果:total=37.50000, ch1=d 第三章 數(shù)據(jù)類型運算符表達式 隱式轉(zhuǎn)換隱式轉(zhuǎn)換什么情況下發(fā)生什么情況下發(fā)生運算轉(zhuǎn)換運算轉(zhuǎn)換-不同類型數(shù)據(jù)混合運算時不同類型數(shù)據(jù)混合運算時賦值轉(zhuǎn)換賦值轉(zhuǎn)換-把一個值賦給與其類型不把一個值賦給與其類型不同的變量時同的變量時輸出轉(zhuǎn)換輸出轉(zhuǎn)換-輸出時轉(zhuǎn)換成指定的輸出輸出時轉(zhuǎn)換成指定的輸出格式格式函數(shù)調(diào)用轉(zhuǎn)換函數(shù)調(diào)用轉(zhuǎn)換-實參與形參類型不一實參與形參類型不一致時轉(zhuǎn)換致時轉(zhuǎn)換運算轉(zhuǎn)換規(guī)那么運算轉(zhuǎn)換規(guī)那么: :不同類型數(shù)據(jù)運算時先自不同類型數(shù)據(jù)運算時先自動轉(zhuǎn)換成同一類型

17、動轉(zhuǎn)換成同一類型3.3各類數(shù)值型數(shù)據(jù)間的混合運算 第三章 數(shù)據(jù)類型運算符表達式 doublefloatlongunsignedintchar,short低高闡明:必定的轉(zhuǎn)換運算對象類型不同時轉(zhuǎn)換例 char ch; int i; float f; double d;ch/i + f*d - (f+i)intintdoubledoubledoubledoubledoubledoubleintintdoubledoubledoubledoubledoubledouble10+a +i*f - d/l例 int i; float f; double d; long l; 第三章 數(shù)據(jù)類型運算符表達式

18、 顯式轉(zhuǎn)換強迫轉(zhuǎn)換顯式轉(zhuǎn)換強迫轉(zhuǎn)換普通方式:類型名表達式普通方式:類型名表達式例例 (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)換得到所需類型的中間變量,原變量類型不變原變量類型不變 例#include main() float x; int i; x=3.6; i=(int)x; printf(“x=%f,i=%d,x,i); 結果:x=3.600000,i=3精度損失問題較高類型向較低類型轉(zhuǎn)換時能夠發(fā)生較高類型向較

19、低類型轉(zhuǎn)換時能夠發(fā)生 第三章 數(shù)據(jù)類型運算符表達式 C C言語中有多種表達式以及與表達言語中有多種表達式以及與表達式相對應的運算符,包括算術運算式相對應的運算符,包括算術運算符與算術表達式、關系運算符與關符與算術表達式、關系運算符與關系表達式、邏輯運算符與邏輯表達系表達式、邏輯運算符與邏輯表達式,還有賦值表達式、條件表達式、式,還有賦值表達式、條件表達式、逗號表達式。逗號表達式。 3.4 運算符和表達式 第三章 數(shù)據(jù)類型運算符表達式 常量、變量、函數(shù)是最簡單的表達式,常量、變量、函數(shù)是最簡單的表達式,表達式加括號、用運算符正確地銜接后表達式加括號、用運算符正確地銜接后也是表達式。這種銜接的普通

20、規(guī)那么是:也是表達式。這種銜接的普通規(guī)那么是:表達式必需寫在同一行上,只能運用圓表達式必需寫在同一行上,只能運用圓括號且左、右括號個數(shù)要一樣,多層括括號且左、右括號個數(shù)要一樣,多層括號時內(nèi)層括號中的運算優(yōu)先號時內(nèi)層括號中的運算優(yōu)先 x1111如可寫成1/(1+1/(1+x) 1/(1+1/(1+x) 第三章 數(shù)據(jù)類型運算符表達式 C運運算算符符算術運算符:+ - * / % + -關系運算符: = !=邏輯運算符:! & |位運算符 : | &賦值運算符:= 及其擴展條件運算符:?:逗號運算符:,指針運算符:* &求字節(jié)數(shù) :sizeof強迫類型轉(zhuǎn)換:類型分量運算符:.

21、 -下標運算符:其它 :( ) - 第三章 數(shù)據(jù)類型運算符表達式 運算符功能運算符功能與運算量關系與運算量關系要求運算量個數(shù)要求運算量個數(shù)要求運算量類型要求運算量類型運算符優(yōu)先級別運算符優(yōu)先級別結合方向結合方向結果的類型結果的類型學習運算符應留意:學習運算符應留意: 第三章 數(shù)據(jù)類型運算符表達式 算術運算符和表達式算術運算符和表達式根本算術運算符:根本算術運算符: + - + - * * / % / %結合方向:從左向右結合方向:從左向右優(yōu)先級:優(yōu)先級: - - - -* * / % - + - / % - + - (2) (3) (4) (2) (3) (4)闡明:闡明:“- -可為單目運算

22、符時可為單目運算符時, ,右結合性右結合性兩整數(shù)相除,結果為整數(shù)兩整數(shù)相除,結果為整數(shù)% %要求兩側(cè)均為整型數(shù)據(jù)要求兩側(cè)均為整型數(shù)據(jù), ,例 5/2 = -5/2.0 =例 5%2 = -5%2 = 1%10 = 5%1 = 5.5%2例 5/2 = 2 -5/2.0 = -2.5例 5%2 = 1 -5%2 = -1 1%10 = 1 5%1 = 0 5.5%2 ()當當 % 時,時,余數(shù)余數(shù) = 第三章 數(shù)據(jù)類型運算符表達式 自增、自減運算符自增、自減運算符+ -+ -作用:使變量值加作用:使變量值加1 1或減或減1 1種類:種類:前置前置 +i, -i ( +i, -i (先執(zhí)行先執(zhí)行i

23、+1i+1或或i-1i-1,再運用,再運用i i值值后置后置 i+,i- ( i+,i- (先運用先運用i i值值, ,再執(zhí)行再執(zhí)行i+1i+1或或i-1i-1例例 j=3; k=+j; j=3; k=+j; j=3; k=j+; j=3; k=j+; j=3; printf( j=3; printf(“%d%d,+j); ,+j); j=3; printf( j=3; printf(“%d%d,j+); ,j+); a=3;b=5;c=(+a) a=3;b=5;c=(+a)* *b; b; a=3;b=5;c=(a+) a=3;b=5;c=(a+)* *b; b; /k=4,j=4/k=3,

24、j=4/4/3/c=20,a=4/c=15,a=4 第三章 數(shù)據(jù)類型運算符表達式 自增、自減運算符自增、自減運算符+ -+ -作用:使變量值加作用:使變量值加1 1或減或減1 1種類:種類:前置前置 +i, -i ( +i, -i (先執(zhí)行先執(zhí)行i+1i+1或或i-1i-1,再運用,再運用i i值值后置后置 i+,i- ( i+,i- (先運用先運用i i值值, ,再執(zhí)行再執(zhí)行i+1i+1或或i-1i-1闡明:闡明:+ - + - 不能用于常量和表達式不能用于常量和表達式, ,如如5+5+,(a+b)+(a+b)+ -+ -結合方向:結合方向: 自右向左自右向左優(yōu)先級:優(yōu)先級:- + - -

25、+ - -* * / % -+ - / % -+ - (2) (3) (4) (2) (3) (4)例 -i+ -(i+) i=3; printf(“%d,-i+); /-3 例 j+k; (j+)+k;例 -i+ i=3; printf(“%d,-i+); 第三章 數(shù)據(jù)類型運算符表達式 單獨作為一條語句,單獨作為一條語句,“i+;i+;和和“+i;+i;都表示都表示“i=i+1;i=i+1;,前綴格,前綴格式和后綴格式在運用上沒有區(qū)別,式和后綴格式在運用上沒有區(qū)別,“i-;i-;和和“-i;-i;是同樣的。是同樣的。 第三章 數(shù)據(jù)類型運算符表達式 當自增、自減運算作為某個表達式的一個組成當自

26、增、自減運算作為某個表達式的一個組成部分時,兩種不同格式會產(chǎn)生不同的效果部分時,兩種不同格式會產(chǎn)生不同的效果 int x=3,y; y=-x+3; printf(%d %dn,x,y); int x=3,y;y=x-+3;printf(%d %dn,x,y);先執(zhí)行先執(zhí)行“x=x-1;,此時,此時x的當前值為的當前值為2,再執(zhí)行,再執(zhí)行“y=x+3,結果是結果是x為為2、y為為5; 先執(zhí)行先執(zhí)行“y=x+3;y=x+3;,此時,此時x x的當前值為的當前值為3 3,再執(zhí)行,再執(zhí)行“x=x-1x=x-1, ,結果是結果是x x為為2 2、y y為為6 6 第三章 數(shù)據(jù)類型運算符表達式 類型轉(zhuǎn)換

27、運算中的自動轉(zhuǎn)換(轉(zhuǎn)換規(guī)那么) 強迫轉(zhuǎn)換 賦值過程中的轉(zhuǎn)換 實型 整型 char short int long 同類整型的unsigned signed 第三章 數(shù)據(jù)類型運算符表達式 賦值運算符和表達式賦值運算符和表達式簡單賦值運算符簡單賦值運算符符號:符號: = =格式:格式: 變量標識符變量標識符= =表達式表達式作用:將一個數(shù)據(jù)常量或表達式賦給一作用:將一個數(shù)據(jù)常量或表達式賦給一個變量個變量 復合賦值運算符復合賦值運算符 種類:種類:+= -= += -= * *= /= %= = &= = |= /= %= = &= = |= 含義:含義: exp1 op= exp2

28、exp1 op= exp2 exp1 = exp1 op exp2 exp1 = exp1 op exp2a+=3a=a+3x*=y+8x=x*(y+8)x%=3x=x%3例例 a=3; a=3; d=func(); d=func(); c=d+2; c=d+2; 第三章 數(shù)據(jù)類型運算符表達式 結合方向:自右向左優(yōu)先級: 14左側(cè)必需是變量,不能是常量或表達式 賦值表達式的值與變量值相等,且可嵌套賦值轉(zhuǎn)換規(guī)那么:使賦值號右邊表達式值自動轉(zhuǎn)換成其左邊變量的類型例 3=x-2*y; a+b=3;例 float f; int i; i=10; f=i;那么 f=10.00000例 int i; i=

29、2.56; /結果i=2;例: 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闡明: 第三章 數(shù)據(jù)類型運算符表達式 闡明闡明: : 結合方向:自右向左結合方向:自右向左 優(yōu)先級優(yōu)先級: 14: 14 左側(cè)必需是變量,不能是常量或表達式左側(cè)必需是變量,不能是常量或表達式 賦值表達式的值與變量值相等賦值表達式的值與變量值相等,且可嵌套且可嵌套賦值轉(zhuǎn)換規(guī)那么賦值轉(zhuǎn)換規(guī)那么: :使賦值號右邊表達式值自動轉(zhuǎn)換成其使賦值號右邊表達式值自動轉(zhuǎn)換成其左邊變量的類型左邊變量的類型例: a=12; a+=a-=a*a例: int a=2; a%=4-1; a+=a*=a-=a*=3; /a=-264 等價于a=a+(a=a-(a*a)/a=0 等價于a=a+(a=a*(a=a-(a=a*3) 第三章 數(shù)據(jù)類型運算符表達式 逗號運算符和表達式逗號運算符和表達式方式:表達式方式:表達式1,1,表達式表達式2,

溫馨提示

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

評論

0/150

提交評論