版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
1、W W W .CCIT.EDU.CN主講:楊忠寶主講:楊忠寶長春工程學院長春工程學院 Changchun Institute of Technology 計算中心計算中心 Computer Center 語言教研室語言教研室 Language Teaching and Research (C Language )第二章第二章 數(shù)據(jù)類型、運算符和表達式數(shù)據(jù)類型、運算符和表達式Data type, operator and expression Focus Difficulties 2.1 數(shù)據(jù)類型數(shù)據(jù)類型 Data typelC語言程序中所用到的每一個常量、變量及函數(shù)等基本操作對象都有一種數(shù)據(jù)類
2、型與之相聯(lián)系。數(shù)據(jù)類型決定:1. 數(shù)據(jù)占內(nèi)存字節(jié)數(shù)2. 數(shù)據(jù)取值范圍3. 其上可進行的操作C數(shù)據(jù)類型基本類型構造類型指針類型空類型void定義類型typedef字符類型char枚舉類型enum整 型實型單精度型float雙精度型double數(shù)組結構體struct共用體union短整型short長整型long整型intC數(shù)據(jù)類型基本類型構造類型指針類型空類型void定義類型typedef字符類型char枚舉類型enum整 型實型單精度型float雙精度型double數(shù)組結構體struct共用體union短整型short長整型long整型intC數(shù)據(jù)類型基本類型構造類型構造類型指針類型指針類型空類
3、型空類型void定義類型定義類型typedef字符類型char枚舉類型enum整 型實型單精度型float雙精度型double數(shù)組結構體struct共用體union短整型short長整型long整型int2.2 標識符、常量與變量標識符、常量與變量 Identifier, constant and variable 標識符標識符 Identifiern定義:用來標識變量、常量、函數(shù)等的字符序列n命名規(guī)則:l只能由字母、數(shù)字、下劃線組成,且第一個字符必須是字母或下劃線;l大小寫敏感如:sum、Sum、SUM是不同的三個標識符;l最長255個字符;l不能使用關鍵字;n命名原則:l見名知意l不宜混淆
4、 如l與1, o與0例:判斷下列標識符合法性sum _Sum M.D.John day 3days # 33 $123 lotus_1_2_3 char ab常量常量 ConstantConstantn定義:程序運行時其值不能改變的量(即常數(shù))n分類:l符號常量:用標識符代表常量l定義格式: #define 符號常量 常量l一般用大寫字母l是宏定義預處理命令,不是C語句例 符號常量舉例#define PRICE 30main() int num,total; num=10; total=num*PRICE; printf(total=%d,total);運行結果:total=300l直接常量:
5、l整型常量 l實型常量 l字符常量 l字符串常量變量 Variablen概念:其值可以改變的量n變量定義的一般格式: 數(shù)據(jù)類型 變量1,變量2,變量n;n變量初始化:定義時賦初值 例: int a,b,c; float data;決定分配字節(jié)數(shù)和數(shù)的表示范圍合法標識符例: 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;n變量的使用:先定義,后使用例1 int student; stadent=19; /Undefined symbol statent in function main v變量定義位
6、置:一般放在函數(shù)開頭main() int a,b=2; float data; a=1; data=(a+b)*1.2; printf(data=%fn,data);變量定義可執(zhí)行語句編譯程序根據(jù)變量定義為其分配指定字節(jié)的內(nèi)存單元.地址int a=1, b=-3,c;abc4字節(jié)4字節(jié)4字節(jié)地址地址.內(nèi)存1-3隨機數(shù)【例2.3】變量的定義。#include stdio.hmain() int a; /定義變量a為整型 a=20; printf(%d,a);運行結果: 20a20變量值存儲單元變量名1. 整型常量2. 整型變量2.3 整型量整型量 Integer&整型常量(整常數(shù))v三種形式:l
7、十進制整數(shù):由數(shù)字09和正負號表示.如 123,-456,0l八進制整數(shù):由數(shù)字0開頭,后跟數(shù)字07表示.如0123,011l十六進制整數(shù):由0 x開頭,后跟09,af,AF表示. 如0 x123,0Xff問題:0123 = ( )100 x123 = ( )100Xff = ( )1083291255問題:0123 = ( )100 x123 = ( )100Xff = ( )10不合法的八進制數(shù): 082(包含了非八進制數(shù)碼)-0127(出現(xiàn)了負號)不合法的十六進制整常數(shù): 5A (無前綴0X)0X3H (含有非十六進制數(shù)碼)&整型變量 類型說明符 數(shù)的范圍 分配字節(jié)數(shù)l int -214
8、74836482147483647 l short int -3276832767 l unsigned int 04294967295 l long int -21474836482147483647 l unsigned long 04294967295 舉例:舉例: int a , b , c ; /* a,b,c為整型變量 */ long x , y ; /* x,y為長整型變量 */ unsigned p , q ; /* p,q為無符號整型變量 */【例2.4】整型變量的定義與使用。#includestdio.hmain() int a,b,c,d; unsigned u; a=1
9、0; b=-20; u=30; c=a+u; d=b+u; printf(c=%d , d=%d n , c , d );運行結果:c=40,d=102.4 實型量實型量 real-type1. 實型常量2. 實型變量&實型常量(實數(shù)或浮點數(shù))實型常量(實數(shù)或浮點數(shù))v表示形式:表示形式:l十進制數(shù)形式:(必須有小數(shù)點)十進制數(shù)形式:(必須有小數(shù)點) 如如0.123, .123, 0.123, .123, 123.0, 0.0, 123.123.0, 0.0, 123.l指數(shù)形式:(指數(shù)形式:(e e或或E E的的前前后后必須有數(shù)字;指數(shù)必須為整數(shù))必須有數(shù)字;指數(shù)必須為整數(shù))如如12.312
10、.3e3 ,123E2, 1.23e4 , e3 ,123E2, 1.23e4 , e-5e-5 , , 1.2E-3.51.2E-3.5 &實型變量實型變量v floatfloat: 占占4 4字節(jié),提供字節(jié),提供7 7位有效數(shù)字位有效數(shù)字數(shù)值范圍為數(shù)值范圍為3.4E-383.4E-383.4E+38 3.4E+38 v doubledouble:占占8 8字節(jié),提供字節(jié),提供15151616位有效數(shù)字位有效數(shù)字 數(shù)值范圍為數(shù)值范圍為1.7E-3081.7E-3081.7E+3081.7E+308 【例2.6】#includestdio.hvoid main() float a; doubl
11、e b; a=1234.56789; b=1234.5678901234; printf(%fn%fn,a,b);運行結果:1234.5678711234.5678902.5 字符型量字符型量 Character1.字符常量2.轉義字符3.字符變量 4.字符串常量轉義字符及其含義:轉義字符含義n0radddtbfxhh轉義字符含義換行 空值回車響鈴單引號3位8進制數(shù)代表的字符水平制表退格換頁反斜線雙引號2位16進制數(shù)代表的字符&字符常量v定義:用單引號括起來的單個普通字符或轉義字符. v字符常量的值:該字符的ASCII碼值如 101 -A 012 -n 376 - x61 -a 60 -0 4
12、83 -()例:A-101-x41-65如 A65, a97, 048 , n10如 a A ? n 101& 轉義字符:反斜線后面跟一個字符或一個代碼值表示例 轉義字符舉例main() printf(101 x42 Cn); printf(I say:How are you?n); printf(C Programn); printf(Visual C+);運行結果:(屏幕顯示)A B CIsay:How are you?C ProgramVisual C+&字符型變量v字符變量存放字符ASCII碼vchar與int數(shù)據(jù)間可進行算術運算例 a=D; /* a=68; */ x=A+5; /*
13、 x=65+5; */ s=!+G /* s=33+71; */沒有字符串變量,用字符數(shù)組存放【例2.9】把小寫字母換成大寫字母#includestdio.hvoid main() char c1,c2; c1=a; c2=b; c1=c1-32; c2=c2-32; printf(%c,%cn%d,%dn,c1,c2,c1,c2);運行結果:A,B65,66v字符常量與字符串常量不同&字符串常量v定義:用雙引號( )括起來的字符序列v存儲:每個字符串尾自動加一個 0 作為字符串結束標志h e l l o 0例 字符串hello在內(nèi)存中a a 0例 aa例 空串 0例: char ch; ch
14、=A; 例: char ch; ch=A; 2.6類型轉換類型轉換 Type Conversion 不同類型數(shù)據(jù)間的轉換n自動轉換l什么情況下發(fā)生運算轉換-不同類型數(shù)據(jù)混合運算時賦值轉換-把一個值賦給與其類型不同的變量時輸出轉換-輸出時轉換成指定的輸出格式函數(shù)調(diào)用轉換-實參與形參類型不一致時轉換l運算轉換規(guī)則:不同類型數(shù)據(jù)運算時先自動轉換成同一類型doublefloatlongunsignedintchar,short低高自動轉換自動轉換說明:必定的轉換運算對象類型不同時轉換例例 char ch; int i; float f; double d;ch / i + f * d - ( f +
15、i )intintdoubledoubledoubledoubledoubledouble強制轉換l一般形式:(類型名)(表達式)例 (int)(x+y) (int)x+y (double)(3/2) (int)3.6 l說明:強制轉換得到所需類型的中間變量,原變量類型不變 例 main() float x; int i; x=3.6; i=(int)x; printf(x=%f,i=%dn,x,i); 結果:x=3.600000,i=3精度損失問題較高類型向較低類型轉換時可能發(fā)生2.7基本運算符和表達式基本運算符和表達式 Basic Operator and ExpressionC運算符算術
16、運算符:(+ - * / % + -)關系運算符:( = !=)邏輯運算符:(! & |)位運算符 :( | &)賦值運算符:(= 及其擴展)條件運算符:(?:)逗號運算符:(,)指針運算符:(* &)求字節(jié)數(shù) :(sizeof)強制類型轉換:(類型)分量運算符:(. -)下標運算符:()其它 : (( ) -)l學習運算符應注意:l運算符功能l與運算量關系n要求運算量個數(shù)n要求運算量類型l運算符優(yōu)先級別l結合方向l結果的類型v算術運算符和表達式l基本算術運算符: + - * / %l結合方向:從左向右l優(yōu)先級: - * / % + - (2) (3) (4)說明:l-可為單目運算符時,右結合
17、性l兩整數(shù)相除,結果為整數(shù)l%要求兩側均為整型數(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 ()問題:求123的百位、十位、個位數(shù)字?l自增、自減運算符+ -l作用:使變量值 加加1 1 或 減減1 1l種類:n前置 +i, -i (先執(zhí)行i+1或i-1,再使用i值)n后置 i+,i- (先使用i值,再執(zhí)行i+1或i-1)例 j=3; k=+j; j=3; k=j+; j=3; printf(%d,+j);
18、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=4l說明:n+ - 不能用于常量和表達式,如5+,(a+b)+n+ -結合方向: 自右向左n優(yōu)先級:- + - * / % + - (2) (3) (4)例 -i+ -(i+) i=3; printf(%d,-i+); /-3 例 -i+ i=3; printf(%d,-i+); l算術表達式l由算術運算符、運算數(shù)和括號連接起來的式子。l示例:a+b、(a*2)/c、abs(-4)-3v賦值運算符和表達式l簡單
19、賦值運算符l符號: =l格式: 變量標識符=表達式l作用:將一個數(shù)據(jù)(常量或表達式)賦給一個變量l復合賦值運算符l種類:+= -= *= /= %=l含義: 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;l說明:n結合方向:自右向左n優(yōu)先級: 14n左側必須是變量,不能是常量或表達式l 賦值表達式的值與變量值相等,且可嵌套l賦值轉換規(guī)則:使賦值號右邊表達式值自動轉換成其左邊變量的類型例 3=x-2*y; a+b=3;例 float f; int i; i=10;
20、f=i;則 f=10.0例 int i; i=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=2v逗號運算符和表達式形式:表達式1,表達式2,表達式n結合性:從左向右優(yōu)先級: 15逗號表達式的值:等于表達式n的值用途:常用于循環(huán)for語句中例 a=3*5,a*4 a=3*5,a*4,a+5例 x=(a=3,6*3) x=a=3,6*a例 a=1;b=2;c=3; printf(%d,%d,%d,a,b,c); printf(%d,%d,%d,(a,b,c),b,c); /a=15,表達式值60/a=15,表達式值20/賦值表達式,表達式值18,x=18/逗號表達式,表達式值18,x=3/1,2,3/3,2,3v求字節(jié)數(shù)運算符 lsizeof是一個比較特殊的單目運算符,也是一個非常有用的運算符,常用于動態(tài)分配內(nèi)存。l其一般形式為: sizeof
溫馨提示
- 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年外研版三年級起點九年級物理上冊階段測試試卷
- 2024沈陽環(huán)保設備供應及安裝合同
- 2025年冀教版九年級科學下冊階段測試試卷含答案
- 2025年新科版七年級數(shù)學下冊階段測試試卷含答案
- 2024某局體育賽事贊助合同
- 2025年滬科版七年級歷史下冊月考試卷
- 2025年人教版(2024)七年級地理上冊月考試卷含答案
- 2025年中圖版七年級歷史下冊階段測試試卷含答案
- 2025年人教版七年級科學下冊階段測試試卷含答案
- 2025年度鋼筋套筒銷售代理合同
- 采購部目標責任書目標責任書大全
- 安全生產(chǎn)風險分級管控和隱患排查治理體系(雙重預防體系)建設實施方案
- LY/T 3292-2021自然保護地生態(tài)旅游規(guī)范
- JJF 1069-2012法定計量檢定機構考核規(guī)范
- 政府采購業(yè)務知識培訓課件
- GA 1800.1-2021電力系統(tǒng)治安反恐防范要求第1部分:電網(wǎng)企業(yè)
- 國家基本藥物的合理應用培訓課件
- 三年級上冊語文作文課件-《我學會了……》(共15張PPT)-全國通用
- 質量系統(tǒng) GMP 實施指南
- 住房公積金繳存情況專項審計報告
- 猴痘病毒資料
評論
0/150
提交評論