版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、C程序設(shè)計ch02數(shù)據(jù)描述1第二章 數(shù)據(jù)描述v預(yù)備知識v數(shù)據(jù)類型v常量與變量v運(yùn)算符和表達(dá)式v不同類型數(shù)據(jù)間的轉(zhuǎn)換C程序設(shè)計ch02數(shù)據(jù)描述2v2.0 預(yù)備知識計算機(jī)中數(shù)的表示及進(jìn)制轉(zhuǎn)換v數(shù)碼、基與權(quán)數(shù)碼:表示數(shù)的符號基:數(shù)碼的個數(shù)權(quán):每一位所具有的值v數(shù)制C程序設(shè)計ch02數(shù)據(jù)描述3數(shù)制基權(quán)表示數(shù)碼特點(diǎn)10,10,10,十進(jìn)制數(shù)0910逢十進(jìn)一二進(jìn)制數(shù)0122,2,2,逢二進(jìn)一八進(jìn)制數(shù)0788,8,8,逢八進(jìn)一十六進(jìn)制數(shù)09,AF,af1616,16,16,逢十六進(jìn)一十進(jìn)制:4956= 410+910 +510+610二進(jìn)制:1011=12+02 +12+12十六進(jìn)制:81AE=816+11
2、6 +1016+1416八進(jìn)制:4275=48+28 +78+58C程序設(shè)計ch02數(shù)據(jù)描述4v各種進(jìn)制之間的轉(zhuǎn)換二進(jìn)制、八進(jìn)制、十六進(jìn)制轉(zhuǎn)換成十進(jìn)制v方法:按權(quán)相加10012345259212120212121111011)()(例10012894868381136)()(例1001231679781610162161516121)()(例AFC程序設(shè)計ch02數(shù)據(jù)描述5的余數(shù)是2)2.22(222.22).(00012110011112011NaaaaaaaaaaaaaNnnnnnnnnnn十進(jìn)制轉(zhuǎn)換成二進(jìn)制、八進(jìn)制、十六進(jìn)制v原理:v各種進(jìn)制之間的轉(zhuǎn)換(整數(shù))二進(jìn)制、八進(jìn)制、十六進(jìn)制轉(zhuǎn)換
3、成十進(jìn)制v方法:按權(quán)相加v方法:連續(xù)除以基,從低到高記錄余數(shù),直至商為0例 把十進(jìn)制數(shù)59轉(zhuǎn)換成二進(jìn)制數(shù)5922921427232120(59)10=(111011)21101111 1 1 0 1 1余余余余余余例 把十進(jìn)制數(shù)159轉(zhuǎn)換成八進(jìn)制數(shù)1598198280(159)10=(237)82 3 7 余 7余 3余 2例 把十進(jìn)制數(shù)459轉(zhuǎn)換成十六進(jìn)制數(shù)4591628161160(459)10=(1CB)161 C B 余11余12余 1C程序設(shè)計ch02數(shù)據(jù)描述6二進(jìn)制與八進(jìn)制之間的轉(zhuǎn)換v二進(jìn)制轉(zhuǎn)換成八進(jìn)制:從右向左,每3位一組(不足3位左補(bǔ)0),轉(zhuǎn)換成八進(jìn)制v八進(jìn)制轉(zhuǎn)換成二進(jìn)制:用3
4、位二進(jìn)制數(shù)代替每一位八進(jìn)制數(shù)例 (1101001)2=(001,101,001)2=(151)8例 (246)8=(010,100,110)2=(10100110)2000 0001 1010 2011 3100 4101 5110 6111 7C程序設(shè)計ch02數(shù)據(jù)描述7二進(jìn)制與十六進(jìn)制之間的轉(zhuǎn)換v二進(jìn)制轉(zhuǎn)換成十六進(jìn)制:從右向左,每4位一組(不足4位左補(bǔ)0),轉(zhuǎn)換成十六進(jìn)制v十六進(jìn)制轉(zhuǎn)換成二進(jìn)制:用4位二進(jìn)制數(shù)代替每一位十六進(jìn)制數(shù)例 (111)2=(0011,0101,0111,1101)2=(357D)16例 (4B9E)16=(0100,1011,1001,1110)2=(1110)20
5、000 00001 10010 20011 30100 40101 50110 60111 71000 81001 91010 A1011 B1100 C1101 D1110 E1111 FC程序設(shè)計ch02數(shù)據(jù)描述8字節(jié)和位v內(nèi)存以字節(jié)為單元組成v每個字節(jié)有一個地址v一個字節(jié)一般由8個二進(jìn)制位組成v每個二進(jìn)位的值是0或101234567012345678910.7643251C程序設(shè)計ch02數(shù)據(jù)描述9數(shù)值的表示方法原碼、反碼和補(bǔ)碼v原碼:最高位為符號位,其余各位為數(shù)值本身的絕對值v反碼:正數(shù):反碼與原碼相同負(fù)數(shù):符號位為1,其余位對原碼取反v補(bǔ)碼:正數(shù):原碼、反碼、補(bǔ)碼相同負(fù)數(shù):最高位為1
6、,其余位為原碼取反,再對整個數(shù)加13126912457810119-5=49+7=16=(14)12C程序設(shè)計ch02數(shù)據(jù)描述10原碼反碼補(bǔ)碼+7-7111+0-0數(shù)的范圍01111111(-127+127)01111111(-127+127)01111111(-128+127)(用一字節(jié)表示數(shù))v負(fù)數(shù)補(bǔ)碼轉(zhuǎn)換成十進(jìn)制數(shù):最高位不動,其余位取反加1例 補(bǔ)碼:11111001 取反:10000110 加1: 10000111=-7C程序設(shè)計ch02數(shù)據(jù)描述11C程序的元素C TokenskeywordsIndentifiersConstantsStringe.g. “ABC”Special sy
7、mbolse.g. OperatorC程序設(shè)計ch02數(shù)據(jù)描述12v2.1 數(shù)據(jù)類型數(shù)據(jù)類型Indentifiers and Constants數(shù)據(jù)類型總表C C數(shù)數(shù)據(jù)據(jù)類類型型基本類型基本類型構(gòu)造類型構(gòu)造類型指針類型指針類型空類型空類型void定義類型定義類型typedef字符類型字符類型char枚舉類型枚舉類型enum整整 型型實型實型單精度型單精度型float雙精度型雙精度型double數(shù)組數(shù)組結(jié)構(gòu)體結(jié)構(gòu)體struct共用體共用體union短整型短整型short長整型長整型long整型整型int數(shù)據(jù)類型決定:1. 數(shù)據(jù)占內(nèi)存字節(jié)數(shù)2. 數(shù)據(jù)取值范圍3. 其上可進(jìn)行的操作C程序設(shè)計ch02
8、數(shù)據(jù)描述13基本數(shù)據(jù)類型類型符號關(guān)鍵字?jǐn)?shù)的表示范圍所占位數(shù)整型字符型實型有無(signed)int16-3276832767(signed)short16-3276832767(signed)long32-2147483648214748364716unsigned int0655353204294967295unsigned longunsigned short16065535有float323.4e-383.4e38有double641.7e-3081.7e308有(signed) char8-128127無unsigned char80255說明:數(shù)據(jù)類型所占字節(jié)數(shù)隨機(jī)器硬件不同而不同,
9、上表以IBM PC機(jī)為例:C程序設(shè)計ch02數(shù)據(jù)描述1401 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最小:0C程序設(shè)計ch02數(shù)據(jù)描述15v2.2 常量與變量標(biāo)識符v定義:用來標(biāo)識變量、常量、函數(shù)等的字符序列v組成:只能由字母、數(shù)字、下劃線組成,且第一個字母必須是字母或下劃線大小寫敏感不能使用關(guān)鍵字v長度:最長32個字符v命名原則:見名知意不宜混淆 如l與I, o與0例
10、:判斷下列標(biāo)識符號合法性sum Sum M.D.John day Date 3days student_name #33 lotus_1_2_3 char ab _above $123M.D.John3days#33char$123abC程序設(shè)計ch02數(shù)據(jù)描述16常量v定義:程序運(yùn)行時其值不能改變的量(即常數(shù))Constants/常量數(shù)值常量字符常量整型實型單字符字符串C程序設(shè)計ch02數(shù)據(jù)描述17v一般用大寫字母v是宏定義預(yù)處理命令,不是C語句直接常量:v整型常量 v實型常量 v字符常量 v字符串常量如 #define PRICE 30v常量表示法:符號常量:用標(biāo)識符代表常量(p43)v定
11、義格式: #define 符號常量 常量例 符號常量舉例#define PRICE 30main() int num,total; num=10; total=num*PRICE; printf(total=%d,total);運(yùn)行結(jié)果:total=300C程序設(shè)計ch02數(shù)據(jù)描述18&整型常量(整常數(shù))v三種形式:pp25十進(jìn)制整數(shù):由數(shù)字09和正負(fù)號表示.如 123,-456,0八進(jìn)制整數(shù):由數(shù)字0開頭,后跟數(shù)字07表示.如0123,011十六進(jìn)制整數(shù):由0 x開頭,后跟09,af,AF表示. 如0 x123,0Xff例 12 與 12L例 30000 為int型 65536 為l
12、ong int 型v整型常量的類型根據(jù)其值所在范圍確定其數(shù)據(jù)類型在整常量后加限定詞l或L、U或UL,認(rèn)為它是long int 型或無符號整型、無符號長整型常量問題:0123 = ( )100 x123 = ( )100Xff = ( )1083291255問題:0123 = ( )100 x123 = ( )100Xff = ( )10例:整型打印C程序設(shè)計ch02數(shù)據(jù)描述19&實型常量(實數(shù)或浮點(diǎn)數(shù))v表示形式:十進(jìn)制數(shù)形式:(必須有小數(shù)點(diǎn)) 如0.123, .123, 123.0, 0.0, 123.指數(shù)形式:(e或E之前必須有數(shù)字;指數(shù)必須為整數(shù))如12.3e3 ,123E2,
13、1.23e4 , e-5 , 1.2E-3.5 v實型常量的類型默認(rèn)double型 : 絕對值范圍1.7e308在實型常量后加字母f或F,認(rèn)為它是float 型:絕對值范圍3.4e38長雙精度,后加Lf: 絕對值范圍1.2e4932例:區(qū)別例:區(qū)別1.0e+7, e7, e+7, 1.2e-61.0e+7, e7, e+7, 1.2e-6C程序設(shè)計ch02數(shù)據(jù)描述20&字符常量v定義:用單引號括起來的單個普通字符或轉(zhuǎn)義字符. v字符常量的值(pp459):該字符的ASCII碼值轉(zhuǎn)義字符及其含義:轉(zhuǎn)義字符含義nvradddtbf”xhh轉(zhuǎn)義字符含義換行垂直制表回車響鈴單引號3位8進(jìn)制數(shù)代
14、表的字符水平制表退格換頁反斜線雙引號2位16進(jìn)制數(shù)代表的字符如 101 -A 012 -n 376 - x61 -a 60 -0 483 -()例:A-101-x41-65如 A65, a97, 048 , n10如 a A ? n 101v轉(zhuǎn)義字符:反斜線后面跟一個字符或一個代碼值表示例 轉(zhuǎn)義字符舉例main() printf(101 x42 Cn); printf(I say:How are you?n); printf(C Programn); printf(Turbo C);運(yùn)行結(jié)果:(屏幕顯示)A B CIsay:”How are you?”C ProgramTurbo C例 mai
15、n() printf(“Yb=n”); 運(yùn)行結(jié)果:屏幕顯示:=打印機(jī)輸出:C程序設(shè)計ch02數(shù)據(jù)描述21v字符常量與字符串常量不同&字符串常量v定義:用雙引號(” ”)括起來的字符序列v存儲:每個字符串尾自動加一個 0 作為字符串結(jié)束標(biāo)志h e l l o 0例 字符串“hello”在內(nèi)存中a a 0例 a”a”例: 空串 ” 空字符0例: char ch; ch=“A”; C程序設(shè)計ch02數(shù)據(jù)描述22編譯程序根據(jù)變量定義為其分配指定字節(jié)的內(nèi)存單元.地址int a=1, b=-3,c;abc4字節(jié)4字節(jié)4字節(jié)地址地址.內(nèi)存(在VC+中)1-3隨機(jī)數(shù)變量v概念:其值可以改變的量v變量名
16、與變量值v變量定義的一般格式 (p33) 數(shù)據(jù)類型 變量1,變量2,變量n;v變量初始化:定義時賦初值 例: int a,b,c; float data;決定分配字節(jié)數(shù)和數(shù)的表示范圍合法標(biāo)識符例: int a=2,b,c=4; float data=3.67; char ch=A; int x=1,y=1,z=1; int x=y=z=1;v變量的使用:先定義,后使用例1 int student; stadent=19; /% : illegal, left operand has type float例2 float a,b,c; c=a%b; /% : illegal, left oper
17、and has type floatv變量定義位置:一般放在函數(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(“data=%fn”,data);/在C中錯誤,在C+中正確C程序設(shè)計ch02數(shù)據(jù)描述23&整型變量v占字節(jié)數(shù)隨機(jī)器不同而不同,一般占一個機(jī)器字vshortintlongv可用sizeof(類型標(biāo)識符)測量&實型變量vfloat:占
18、4字節(jié),提供7位有效數(shù)字vdouble:占8字節(jié),提供1516位有效數(shù)字&字符型變量v字符變量存放字符ASCII碼vchar與int數(shù)據(jù)間可進(jìn)行算術(shù)運(yùn)算例 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ù)組存放C程序設(shè)計ch02數(shù)據(jù)描述24例 /*char operation*/ #define PRICE 12.5 #include st
19、dio.h 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é)果運(yùn)行結(jié)果:total=37.500000, ch1=dC程序設(shè)計ch02數(shù)據(jù)描述25&枚舉類型p36程序員自定義的一種數(shù)據(jù)類型.1)先用enum定義一組枚舉常量,及類型標(biāo)識符:enum identifier value1, ., valueN;2)再定義該類型的變量: enum identifier v1,v2, . , vm
20、;例enum weekday Monday, Tuesday, Wednesday, Thursday, Friday, Saturday, Sunday; enum weekday week_st, week_end; week_st=Saturday; week_end=(enum weekday)4;例enum weekday Monday=1, Tuesday, Wednesday, Thursday, Friday, Saturday, Sunday;例enum weekday Monday=1, Tuesday, Wednesday, Thursday, Friday, Satur
21、day, Sunday=0;C程序設(shè)計ch02數(shù)據(jù)描述26&用typedef定義類型 p35功能:用自定義名字為已有數(shù)據(jù)類型命名類型定義簡單形式: typedef type name;例 typedef int INTEGER;類型定義語句關(guān)鍵字已有數(shù)據(jù)類型名用戶定義的類型名例 typedef float REAL;例 INTEGER a,b,c; REAL f1,f2; int a,b,c; float f1,f2; 說明:1.typedef 沒有創(chuàng)造新數(shù)據(jù)類型2.typedef 是定義類型,不能定義變量新的類型名用法不變:新的類型名用法不變:C程序設(shè)計ch02數(shù)據(jù)描述27&
22、變量的類別 (p3637) 取決于變量定義的位置: v在函數(shù)體內(nèi)部的:稱為局部變量 v在函數(shù)體外部的:稱為全局變量外部變量&變量定義為Constant (p42) const int class_size=50;那程序中不允許改變此變量之值。C程序設(shè)計ch02數(shù)據(jù)描述28/*例pp.46 caculate the average of a set of N numbers*/#include stdio.h#define N 10 /*SYMBOLIC CONSTANT*/main() int count ; /*DECLARATION OF */float sum ,average,
23、number ; /*VARIABLES*/sum =0; /*INITIALIZATION*/count = 0;while(count N)scanf(%f,&number);sum=sum+number;count=count+1;average=sum/N;printf(N=%d Sum=%f ,N,sum);printf( Average =%f,average);C程序設(shè)計ch02數(shù)據(jù)描述29/*例pp.47 Convert the given temperature in fahrenheit to celsius. The conversion foumula is:
24、C=(F-32)/1.8*/#include stdio.h#define F_LOW 0 /*-*/#define F_MAX 250 /*SYMBOLIC CONSTANTS*/#define STEP 25 /*-*/main()typedef float REAL ; /*TYPE DEFINITION*/REAL fahrenheit, celsius;/*DECLARATION*/fahrenheit = F_LOW; /*INITIALIZATION*/printf(fahrenheit Celsiusnn);while(fahrenheit = F_MAX)celsius=(f
25、ahrenheit- 32.0)/1.8;printf(%5.1f %7.2fn,fahrenheit, celsius);fahrenheit=fahrenheit+STEP;C程序設(shè)計ch02數(shù)據(jù)描述30v2.3 運(yùn)算符和表達(dá)式 (pp51)C運(yùn)算符算術(shù)運(yùn)算符:+ - * / % 自增自減運(yùn)算符:+ -關(guān)系運(yùn)算符: = !=邏輯運(yùn)算符:! & |位運(yùn)算符 : | &賦值運(yùn)算符:= 及其擴(kuò)展條件運(yùn)算符:?:逗號運(yùn)算符:,指針、地址運(yùn)算符:* &求字節(jié)數(shù) :sizeof強(qiáng)制類型轉(zhuǎn)換:類型成員、指向運(yùn)算符:. -下標(biāo)運(yùn)算符:其它 :( ) -C程序設(shè)計ch02數(shù)據(jù)描述31
26、算術(shù)運(yùn)算符和表達(dá)式 pp51v基本算術(shù)運(yùn)算符: + - * / %結(jié)合方向:從左向右優(yōu)先級: * / % - + - (2) (3) (4)說明:所謂雙目單目三目運(yùn)算符兩整數(shù)相除,結(jié)果為整數(shù)%要求兩側(cè)均為整型數(shù)據(jù)例 5/2 = -5/2.0 =例 5%2 = -5%2 = 1%10 = 5%1 = 5.5%2例 5/2 = 2 -5/2 =-2 -5/2.0 = -2.5例 5%2 = 1 -5%2 = -1 1%10 = 1 5%1 = 0 5.5%2 ()注:視C系統(tǒng)不同,有向0取整(如VC+)、背0取整C程序設(shè)計ch02數(shù)據(jù)描述32關(guān)系運(yùn)算符和表達(dá)式 pp54v關(guān)系運(yùn)算符種類: = !=
27、結(jié)合方向:自左向右優(yōu)先級別: = !=優(yōu)先級6優(yōu)先級7例 ca+b /c(a+b) ab!=c /(ab)!=c a=bc /a=(bc /a=(bc)關(guān)系表達(dá)式的值:是邏輯值“真”或“假”,用1和0表示例 int a=3,b=2,c=1,d,f; ab (ab)=c b+cb f=abc/表達(dá)式值1/表達(dá)式值1/表達(dá)式值0/d=1/f=0C語言中, 0表示“假”,非0表示“真”C程序設(shè)計ch02數(shù)據(jù)描述33關(guān)系運(yùn)算注意:例 若a=0; b=0.5; x=0.3; 則 a=x278在C中是允許的, 值為0例 int i=1, j=7,a; a=i+(j%4!=0); 則a=2例 a0 結(jié)果為
28、A100 結(jié)果為10C程序設(shè)計ch02數(shù)據(jù)描述34關(guān)系運(yùn)算注意:例 注意區(qū)分“=”與“=”,常把=誤寫為= int a; . if(a=1) printf(“a equal to b”); else printf(“a not equal to b”);例 應(yīng)避免對實數(shù)作相等或不等的判斷如 1.0/3.0*3.0=1.0 結(jié)果為可改寫為:fabs(1.0/3.0*3.0-1.0)1e-601=a延伸:用 b+c=a不用a=b+cC程序設(shè)計ch02數(shù)據(jù)描述35賦值運(yùn)算符和表達(dá)式 pp56v簡單賦值運(yùn)算符符號: =格式: 變量標(biāo)識符=表達(dá)式作用:將一個數(shù)據(jù)(常量或表達(dá)式)賦給一個變量v復(fù)合賦值運(yùn)算
29、符種類:+= -= *= /= %= = &= = |=含義: exp1 op= exp2 exp1 = exp1 op exp2a+=3a=a+3x*=y+8x=x*(y+8)x%=3x=x%3例 a=3; d=func(); c=d+2;C程序設(shè)計ch02數(shù)據(jù)描述36v說明:結(jié)合方向:自右向左優(yōu)先級: 14左側(cè)必須是變量,不能是常量或表達(dá)式賦值表達(dá)式的值與變量值相等,且可嵌套賦值轉(zhuǎn)換規(guī)則:使賦值號右邊表達(dá)式值自動轉(zhuǎn)換成其左邊變量的類型例 3=x-2*y; a+b=3;例 float f; int i; i=10; f=i;則 f=10.0例 int i; i=2.56; /結(jié)果i=
30、2;例: a=b=c=5 a=(b=5) a=5+(c=6) a=(b=4)+(c=6) a=(b=10)/(c=2)/表達(dá)式值為5,a,b,c值為5/ b=5;a=5/表達(dá)式值11,c=6,a=11/表達(dá)式值10,a=10,b=4,c=6/表達(dá)式值5,a=5,b=10,c=2C程序設(shè)計ch02數(shù)據(jù)描述37v說明:結(jié)合方向:自右向左優(yōu)先級: 14左側(cè)必須是變量,不能是常量或表達(dá)式賦值表達(dá)式的值與變量值相等,且可嵌套賦值轉(zhuǎn)換規(guī)則:使賦值號右邊表達(dá)式值自動轉(zhuǎn)換成其左邊變量的類型例: a=12; a+=a-=a*a例: int a=2; a%=4-1; a+=a*=a-=a*=3; /a=-264
31、等價于a=a+(a=a-(a*a)/a=0 等價于a=a+(a=a*(a=a-(a=a*3)C程序設(shè)計ch02數(shù)據(jù)描述38ab!a!ba&ba|b真假真假假假真真邏輯運(yùn)算符和表達(dá)式 p55v邏輯運(yùn)算符種類: ! & |邏輯運(yùn)算真值表C語言中,運(yùn)算量: 0表示“假”, 非0表示“真”, 運(yùn)算結(jié)果: “假” 0 “真” 1真假假假假假真真假假真真真假真真C程序設(shè)計ch02數(shù)據(jù)描述39! (2)& (11)| (12)高低例 a=x & xb&xy a=b|x=y !a|abl優(yōu)先級:l結(jié)合方向:! :從右向左& :從左向右| :從左向右/ (a=x)
32、 & (xb)&(xy)/(a=b)|(x=y)/(!a)|(ab)C程序設(shè)計ch02數(shù)據(jù)描述40! (2)& (11)| (12)高低l優(yōu)先級:l結(jié)合方向:! :從右向左& :從左向右| :從左向右例 a=4;b=5; !a a&b a|b !a|b 4&0|2 53&2|83)&2|(8(4-(!0) 值為1C程序設(shè)計ch02數(shù)據(jù)描述41! (2)& (11)| (12)高低l優(yōu)先級:l結(jié)合方向:! :從右向左& :從左向右| :從左向右短路特性:邏輯表達(dá)式求解時,并非所有的邏輯運(yùn)算符都被執(zhí)行,只是在必須執(zhí)行下
33、一個邏輯運(yùn)算符才能求出表達(dá)式的解時,才執(zhí)行該運(yùn)算符例 a&b&c /只在a為真時,才判別b的值; 只在a、b都為真時,才判別 c的值例 a|b|c /只在a為假時,才判別b的值; 只在a、b都為假時,才判別 c的值例 a=1;b=2;c=3;d=4;m=1;n=1; (m=ab)&(n=cd)/結(jié)果m=0,n=1C程序設(shè)計ch02數(shù)據(jù)描述42自增、自減運(yùn)算符+ - pp58作用:使變量值加1或減1 種類:v前置 +i, -i (先執(zhí)行i+1或i-1,再使用i值)v后置 i+,i- (先使用i值,再執(zhí)行i+1或i-1)例 j=3; k=+j; j=3; k=j+; j=3
34、; 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=4C程序設(shè)計ch02數(shù)據(jù)描述43說明:v+ - 不能用于常量和表達(dá)式,如5+,(a+b)+v+ -結(jié)合方向: 自右向左v優(yōu)先級:- + - -* / % -+ - (2) (3) (4)例 -i+ -(i+) i=3; printf(“%d”,-i+); /-3 例 j+k; (j+)+k;例 -i+ i=3; printf(“%d”,-i+); C程序設(shè)計ch02數(shù)據(jù)
35、描述44v2.4不同類型數(shù)據(jù)間的轉(zhuǎn)換 pp67隱式轉(zhuǎn)換 pp67v什么情況下發(fā)生運(yùn)算轉(zhuǎn)換-不同類型數(shù)據(jù)混合運(yùn)算時賦值轉(zhuǎn)換-把一個值賦給與其類型不同的變量時輸出轉(zhuǎn)換-輸出時轉(zhuǎn)換成指定的輸出格式函數(shù)調(diào)用轉(zhuǎn)換-實參與形參類型不一致時轉(zhuǎn)換v運(yùn)算轉(zhuǎn)換規(guī)則:不同類型數(shù)據(jù)運(yùn)算時先自動轉(zhuǎn)換成同一類型C程序設(shè)計ch02數(shù)據(jù)描述45doublefloatlongunsignedintchar,short低高說明:必定的轉(zhuǎn)換運(yùn)算對象類型不同時轉(zhuǎn)換例 char ch; int i; float f; double d;ch/i + f*d - (f+i)intintdoubledoubledoubledoubledo
36、ubledoubleintintdoubledoubledoubledoubledoubledouble10+a +i*f - d/l例 int i; float f; double d; long l;C程序設(shè)計ch02數(shù)據(jù)描述46顯式轉(zhuǎn)換(強(qiáng)制轉(zhuǎn)換) pp68v一般形式:(類型名)(表達(dá)式)例 (int)(x+y) (int)x+y (double)(3/2) (int)3.6 v說明:強(qiáng)制轉(zhuǎn)換得到所需類型的中間變量,原變量類型不變 例 main() float x; int i; x=3.6; i=(int)x; printf(“x=%f,i=%d”,x,i); 結(jié)果:x=3.600000,i=3精度損失問題較高類型向較低類型轉(zhuǎn)換時可能發(fā)生C程序設(shè)計ch02數(shù)據(jù)描述47
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2026陜西中醫(yī)藥大學(xué)附屬醫(yī)院博士研究生招聘18人備考題庫及答案詳解1套
- 2026首都師范大學(xué)金澤小學(xué)招聘教師備考題庫有答案詳解
- 海信集團(tuán)華東大區(qū)2026屆校園招聘備考題庫及1套參考答案詳解
- 計算機(jī)行業(yè)點(diǎn)評:空天一體臨點(diǎn)已至
- 職業(yè)健康監(jiān)護(hù)中的應(yīng)急預(yù)案制定與演練
- 職業(yè)健康檔案在員工職業(yè)發(fā)展決策中的數(shù)據(jù)支撐
- 職業(yè)健康促進(jìn)的投資回報分析
- 職業(yè)健康促進(jìn)與職業(yè)健康科技賦能
- 金華浙江金華永康市林場招聘編外人員筆試歷年參考題庫附帶答案詳解
- 遂寧2025年四川遂寧射洪市城區(qū)學(xué)校考調(diào)在編在職教師15人筆試歷年參考題庫附帶答案詳解
- 云南省2026年普通高中學(xué)業(yè)水平選擇性考試調(diào)研測試歷史試題(含答案詳解)
- 廣東省花都亞熱帶型巖溶地區(qū)地基處理與樁基礎(chǔ)施工技術(shù):難題破解與方案優(yōu)化
- 家里辦公制度規(guī)范
- 基于知識圖譜的高校學(xué)生崗位智能匹配平臺設(shè)計研究
- GB 4053.3-2025固定式金屬梯及平臺安全要求第3部分:工業(yè)防護(hù)欄桿及平臺
- 環(huán)氧拋砂防滑坡道施工組織設(shè)計
- 2025年下屬輔導(dǎo)技巧課件2025年
- 企業(yè)法治建設(shè)培訓(xùn)課件
- 2026中央廣播電視總臺招聘124人參考筆試題庫及答案解析
- 眼科護(hù)理與疼痛管理
- 2026年中國聚苯乙烯行業(yè)市場深度分析及發(fā)展前景預(yù)測報告
評論
0/150
提交評論