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

下載本文檔

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

文檔簡介

1、計算機程序語言(計算機程序語言(C C)【教學主要內容教學主要內容】n數(shù)據(jù)類型數(shù)據(jù)類型nC+C+運算符運算符n運算符和表達式運算符和表達式要求要求n理解:理解:C+C+數(shù)據(jù)類型數(shù)據(jù)類型n掌握:掌握:C+C+運算符與表達式運算符與表達式 3.1 3.1 數(shù)據(jù)數(shù)據(jù).2 C+.2 C+運算運算符符3.3 3.3 運算符與表達式運算符與表達式 (1 1)數(shù)據(jù)類型數(shù)據(jù)類型(2 2)常量和變量常量和變量(3 3)整型數(shù)據(jù)整型數(shù)據(jù)(4 4)字符型數(shù)據(jù)字符型數(shù)據(jù)(5 5)浮點型數(shù)據(jù)浮點型數(shù)據(jù)n所謂所謂類型類型,就是對數(shù)據(jù)分配存儲單元的安,就是對數(shù)據(jù)分配存儲單元的安排,包括存儲單元的長度排,包括存儲單元的長度(

2、 (占多少字節(jié)占多少字節(jié)) )以以及數(shù)據(jù)的存儲形式及數(shù)據(jù)的存儲形式n不同的類型分配不同的長度和存儲形式不同的類型分配不同的長度和存儲形式數(shù)據(jù)類型數(shù)據(jù)類型基本類型基本類型整型整型 短整型短整型( (short int)short int) 整型整型( (int) int) 長整型長整型( (long int)long int)字符型字符型( (char)char)浮點型浮點型 單精度型單精度型( (float)float)雙精度型雙精度型( (double)double) 長雙精度型長雙精度型( (long double)long double) 布爾型布爾型( (bool)bool) 空類型空

3、類型( (void)void) 構造類型構造類型 枚舉類型枚舉類型( (enum)enum)數(shù)組類型數(shù)組類型 結構體類型結構體類型( (struct)struct) 共用體類型共用體類型( (union)union)指針類型指針類型 a. a.常量常量:在程序運行過程中,其值在程序運行過程中,其值不能被改變的量不能被改變的量n整型常量整型常量:如如10001000,1234512345,0 0,-345-345n實型常量實型常量n十進制小數(shù)形式十進制小數(shù)形式:如如0 0. .34 -5634 -56. .79 079 0. .0 0n指數(shù)形式指數(shù)形式:如如12.3412.34e e3 (3 (

4、代表代表12.3412.34 10103 3) )n字符常量字符常量:如:如? ?n轉義字符轉義字符:如:如nnn字符串常量字符串常量:如如”boyboy”n符號常量符號常量:#define #define PIPI 3.1416 3.1416 b b. .變量變量:在程序運行期間,變量的值是可以改變的在程序運行期間,變量的值是可以改變的n變量必須變量必須先定義先定義,后使用后使用n定義定義變量變量時指定該變量的時指定該變量的名字名字和和類型類型n變量名變量名和和變量值變量值是是兩個不同的概念兩個不同的概念n變量名實際上是以一個名字代表的一個變量名實際上是以一個名字代表的一個存儲地址存儲地址n

5、從變量中取值,實際上是通過變量名找到相應的內從變量中取值,實際上是通過變量名找到相應的內存地址,從該存儲單元中讀取數(shù)據(jù)存地址,從該存儲單元中讀取數(shù)據(jù) c c. .常變量常變量:const int a=3;const int a=3; d. d.標識符標識符:一個對象的名字一個對象的名字n語言規(guī)定標識符只能由語言規(guī)定標識符只能由字母字母、數(shù)字數(shù)字和和下劃線下劃線3 3種種字符組成,且字符組成,且第一個字符必須為字母或下劃線第一個字符必須為字母或下劃線n合法的標識符:合法的標識符:如如sumsum,average, _total, Class, average, _total, Class, da

6、y, BASIC, li_lingday, BASIC, li_lingn不合法的標識符不合法的標識符:M.D.JohnM.D.John,¥,¥123123,3333,3D643D64,a ab b大小寫字母是不同的字符大小寫字母是不同的字符 a. a.整型數(shù)據(jù)的分類整型數(shù)據(jù)的分類n最基本的整型類型最基本的整型類型n基本整型基本整型(int(int型型) ):占:占2 2個或個或4 4個字節(jié)個字節(jié)n短整型短整型(short int)(short int):VC+6.0VC+6.0中占中占2 2個字節(jié)個字節(jié)n長整型長整型(long int)(long int):VC+6.0VC+6.0中占中占4

7、 4個字節(jié)個字節(jié)n雙長整型雙長整型(long long int)(long long int):C99C99新增的新增的b.b.整型變量的符號屬性整型變量的符號屬性n整型變量的值的范圍包括負數(shù)到正數(shù)整型變量的值的范圍包括負數(shù)到正數(shù)n可以將變量定義為可以將變量定義為“無符號無符號”類型類型擴充的整型類型:擴充的整型類型:n有符號基本整型有符號基本整型 signed int; signed int;n無符號基本整型無符號基本整型 unsigned int; unsigned int;n有符號短整型有符號短整型 signed short int; signed short int;n無符號短整型無符

8、號短整型 unsigned short int; unsigned short int;n有符號長整型有符號長整型 signed long int; signed long int;n無符號長整型無符號長整型 unsigned long int unsigned long intn有符號雙長整型有符號雙長整型 signed long long int; signed long long int; n無符號雙長整型無符號雙長整型 unsigned long long int unsigned long long int a.a.字符與字符代碼字符與字符代碼大多數(shù)系統(tǒng)采用大多數(shù)系統(tǒng)采用ASCIIA

9、SCII字符集字符集n字母:字母:A-Z(65-90)A-Z(65-90),a-z(97-122)a-z(97-122)n數(shù)字:數(shù)字:0 09(489(485 57)7)n專門符號:專門符號:2929個:個:! ! ” # & # & ( ) ( ) * *等等n空格符:空格、水平制表符、換行空格符:空格、水平制表符、換行等等n不能顯示的字符:不能顯示的字符:空空(null)(null)字符字符( (以以00表示表示) )、警告警告( (以以aa表示表示) )、退格、退格( (以以bb表示表示) )、回車回車( (以以rr表示表示) )等等n字符字符1 1和整數(shù)和整數(shù)1 1是不

10、同的概念是不同的概念:n字符字符1 1只是代表一個形狀為只是代表一個形狀為1 1的符號,在需的符號,在需要時按原樣輸出,在內存中以要時按原樣輸出,在內存中以ASCIIASCII碼形式碼形式存儲,占存儲,占1 1個字節(jié)個字節(jié)n整數(shù)整數(shù)1 1是以整數(shù)存儲方式是以整數(shù)存儲方式( (二進制補碼方式二進制補碼方式) )存儲的,占存儲的,占2 2個或個或4 4個字節(jié)個字節(jié)0 0 1 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1b.b.字符變量字符變量例例1.1.將字符賦給整型變量。將字符賦給整型變量。 # #include include using namespac

11、e std; using namespace std; int main( ) int main( ) int i; /i int i; /i是整型變量是整型變量 i= i=A A; /; /將字符常量賦給整型變量將字符常量賦給整型變量i i couti coutin; /n; /輸出整型變量輸出整型變量i i值,值,n n 是換行符是換行符 return 0; return 0; n執(zhí)行時輸出執(zhí)行時輸出6565浮點型數(shù)據(jù)是用來表示具有小數(shù)點的實數(shù)浮點型數(shù)據(jù)是用來表示具有小數(shù)點的實數(shù)其一般形式為:其一般形式為:數(shù)符數(shù)符 數(shù)字部分數(shù)字部分 指數(shù)部分指數(shù)部分 + .314159 + .314159

12、 3 3nfloatfloat型型( (單精度浮點型單精度浮點型) )u編譯系統(tǒng)為編譯系統(tǒng)為floatfloat型變量分配型變量分配4 4個字節(jié)個字節(jié)ndoubledouble型型( (雙精度浮點型雙精度浮點型) )u編譯系統(tǒng)為編譯系統(tǒng)為doubledouble型變量分配型變量分配8 8個字節(jié)個字節(jié)nlong double(long double(長雙精度長雙精度) )型型u編譯系統(tǒng)為編譯系統(tǒng)為doubledouble型變量分配型變量分配8 8個或個或1616個字節(jié)個字節(jié)(1) (1) 算術運算符算術運算符 +( +(加加)-()-(減減) ) * *( (乘乘) /() /(除除) %()

13、%(整除整除求余求余)+()+(自加自加) -() -(自減自減) )(2) (2) 關系運算符關系運算符( (大于大于) )( (小于小于) ) ( (等于等于) )( (大大于或等于于或等于) )( (小于或等于小于或等于) )!( (不等不等于于) )( () ) 邏輯運算符邏輯運算符 ( (邏輯與邏輯與) |() |(邏輯或邏輯或) ) !( (邏輯非邏輯非) )( () ) 位運算符位運算符 () (按位右移按位右移) ) ( (按位與按位與) |() |(按位按位或或) () (按位異或按位異或) ) ( (按位取反按位取反) )( () ) 賦值運算符賦值運算符 ( (及其擴展賦

14、值運算符及其擴展賦值運算符) )( () ) 條件運算符條件運算符 (?:) (?:)( () ) 逗號運算符逗號運算符 ( (,) )( () ) 指針運算符指針運算符 ( (* *) )(9 9)引用運算符和地址運算符)引用運算符和地址運算符 ( () )(10) (10) 求字節(jié)數(shù)運算符(求字節(jié)數(shù)運算符(sizeofsizeof)(11) (11) 強制類型轉換運算符(強制類型轉換運算符( ( (類型類型) ) 或類型或類型( )( ))(1 1)算術運算符與算術表達式)算術運算符與算術表達式(2 2)賦值運算符與賦值表達式)賦值運算符與賦值表達式(3 3)逗號運算符與逗號表達式)逗號運

15、算符與逗號表達式a.a.(加法運算符,或正值運算符。如(加法運算符,或正值運算符。如3+53+5,+3+3) (減法運算符,或負值運算符。如(減法運算符,或負值運算符。如5-25-2,-3-3) * * ( (乘法運算符。如乘法運算符。如3 3* *5)5) (除法運算符。如(除法運算符。如5/35/3) (模運算符,或稱求余運算符,兩側均應為(模運算符,或稱求余運算符,兩側均應為整型數(shù)據(jù),如整型數(shù)據(jù),如的值為的值為)。)。b.b.用算術運算符和括號將運算對象(也稱操作數(shù))用算術運算符和括號將運算對象(也稱操作數(shù))連接起來的、符合連接起來的、符合C C語法規(guī)則的式子,稱語法規(guī)則的式子,稱C C

16、算術表達算術表達式。式。c.c.在進行運算時,不同類型的數(shù)據(jù)要先轉換成在進行運算時,不同類型的數(shù)據(jù)要先轉換成同一類型,然后進行運算。同一類型,然后進行運算。d.d.自增自增(+)(+)和自減和自減(-)(-)運算符作用運算符作用+i i(在使用在使用i i之前,先使之前,先使i i的值加的值加1 1,如果,如果i i的原的原值為值為3 3,則執(zhí)行,則執(zhí)行j=+ij=+i后,后,j j的值為的值為4 4)-i (i (在使用在使用i i之前,先使之前,先使i i的值減的值減1 1,如果,如果i i的原的原值為值為3 3,則執(zhí)行,則執(zhí)行j=-ij=-i后,后,j j的值為的值為2)2)i+ (i+

17、 (在使用在使用i i之后,使之后,使i i的值加的值加1 1,如果,如果i i的原值的原值為為3 3,則執(zhí)行,則執(zhí)行j=i+j=i+后,后,j j的值為的值為3 3,然后,然后i i變?yōu)樽優(yōu)?)4)i-(i-(在使用在使用i i之后,使之后,使i i的值減的值減1 1,如果,如果i i的原值為的原值為3 3,則執(zhí)行,則執(zhí)行j=i-j=i-后,后,j j的值為的值為3 3,然后,然后i i變?yōu)樽優(yōu)?)2)(e)(e)可以利用強制類型轉換運算符將一個表達式可以利用強制類型轉換運算符將一個表達式轉換成所需類型。轉換成所需類型。強制類型轉換強制類型轉換的一般形式為的一般形式為: :(類型名)(表達式

18、)例如:(類型名)(表達式)例如:(intint)()(x+yx+y) (將(將x+yx+y的值轉換成整型)的值轉換成整型)( (double)double) (將(將a a轉換成轉換成doubledouble類型)類型)(intint)x+y(x+y(只將轉換成整型,然后與相加只將轉換成整型,然后與相加) )int(x) int(x) 或或 int(x+y)(int(x+y)(類型名不加括號,而變量類型名不加括號,而變量或表達式用括號括起來或表達式用括號括起來例例2. 2. 強制類型轉換。強制類型轉換。# #include include using namespace std;using

19、namespace std;int main( )int main( ) float x; float x; int i; int i; x=3.6; x=3.6; i=(int)x; i=(int)x; coutx=x,i= iendl; coutx=x,i= iendl; return 0; return 0; 運行結果如下:運行結果如下:3.63.6,i=3i=3的型仍為的型仍為floatfloat型,值仍等于型,值仍等于3.63.6。a.a.賦值運算符賦值運算符賦值符號賦值符號“”就是賦值運算符,它的作用就是賦值運算符,它的作用是將一個數(shù)據(jù)或表達式的值賦給一個變量。是將一個數(shù)據(jù)或表達式

20、的值賦給一個變量。b.b.賦值過程中的類型轉換賦值過程中的類型轉換(1)(1)將浮點型數(shù)據(jù)(包括單、雙精度)賦給將浮點型數(shù)據(jù)(包括單、雙精度)賦給整型變量時,舍棄其小數(shù)部分。整型變量時,舍棄其小數(shù)部分。(2)(2)將整型數(shù)據(jù)賦給浮點型變量時,數(shù)值不將整型數(shù)據(jù)賦給浮點型變量時,數(shù)值不變,但以指數(shù)形式存儲到變量中。變,但以指數(shù)形式存儲到變量中。(3)(3)將一個將一個doubledouble型數(shù)據(jù)賦給型數(shù)據(jù)賦給floatfloat變量時,變量時,要注意數(shù)值范圍不能溢出。要注意數(shù)值范圍不能溢出。(4)(4)字符型數(shù)據(jù)賦給整型變量,將字符的字符型數(shù)據(jù)賦給整型變量,將字符的ASCIIASCII碼賦給整型

21、變量碼賦給整型變量。(5)(5)將一個將一個intint、shortshort或或longlong型數(shù)據(jù)賦給一個型數(shù)據(jù)賦給一個charchar型變量,只將其低型變量,只將其低8 8位原封不動地送到位原封不動地送到charchar型變量(發(fā)生截斷)。例如型變量(發(fā)生截斷)。例如short int i=289;short int i=289;char c;char c;c=i; /c=i; /將一個將一個intint型數(shù)據(jù)賦給一個型數(shù)據(jù)賦給一個charchar型變量型變量(6)(6)將將signed(signed(有符號有符號) )型數(shù)據(jù)賦給長度相同的型數(shù)據(jù)賦給長度相同的unsigned(unsi

22、gned(無符號無符號) )型變量,將存儲單元內容原樣型變量,將存儲單元內容原樣照搬(連原有的符號位也作為數(shù)值一起傳送)。照搬(連原有的符號位也作為數(shù)值一起傳送)。例例3.3.將有符號數(shù)據(jù)傳送給無符號變量。將有符號數(shù)據(jù)傳送給無符號變量。# #include include using namespace std;using namespace std;int main( )int main( ) unsigned short a; unsigned short a; short int b=-1; short int b=-1; a=b; a=b; couta=aendl; couta=aendl; return 0; return 0; 運行結果為運行

溫馨提示

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

評論

0/150

提交評論