版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、第二章數據類型、運算符和表達式中的數據類型算術運算符和算術表達式賦值運算符和賦值表達式逗號運算符及逗號表達式 邏輯運算符和邏輯表達式本章提要:1 中的數據類型常量:在程序運行過程中值不改變的量。如4、3、a 變量:值可以改變的量稱為變量。每一個變量應對應一個名字,即標識符。C規(guī)定:標識符只能由字母、數字和下劃線三種字符組成,且第一個字符不能是數字。一、常量與變量 char 字符型:占用一個字節(jié),只能存放一個字符 int 整型:占用兩個字節(jié),數的范圍 3276832767float 單精度浮點數:4 byte double 雙精度浮點數:8 byte二、C中的基本數據類型C中只有以下四種基本的數
2、據類型字符常量:用單引號引起來的字符。如a、z、S等注意 :在C中,a與a是不同的除了這種形式的字符常量外,C還有一種特殊形式的字符常量:以反斜杠為開頭的字符序列,稱之為“轉義字符”。如前面接觸的n。說明 :其它的轉義字符請參見教材1、字符型字符變量:用char關健字定義的變量。如:char c1,c2;說明 :在字符變量中,只能存放一個字符,不能這樣對字符變量賦值: c1=ab;或 c1=”a” 而只能這樣賦值: c1=a;字符串:用雙引號引起來的字符如:“asd”、“hello” 1、字符型字符在內存中的存儲形式 :字符在內存中是以一個字節(jié)的空間來存放這個字符的ASCII碼的,即,字符在內
3、存中也是以數的形式存在的。因此,可以對字符進行加、減等算術運算。例:驗證字符在內存中的存儲形式1、字符型#includevoid main( )char c1,c2;c1=a;c2=d;printf(“%c,%dn”,c1,c1);printf(“%c,%dn”,c2,c2);1、字符型整常量:一般的十進制整數、以“”開頭的進制整數,以“”開頭的16進制整數。整型變量:一般的整型變量為基本型,用int關健字來定義。一個int型變量在內存中占兩個字節(jié)。2、整型除基本型外,在C中還可以用以下幾種修飾符對int型數據進行修飾,以擴大int型數據的范圍:long 長整型 4 byteshort 短整型
4、 2byteunsinged 無符號型 2byte2、整型float:單精度浮點數,在內存中占4個bytedouble:雙精度浮點數,在內存中占8個byte3、實型三、各類數據間的混合運算 通過前面的講解,我們已經知道:字符型與整型在C中是通用的。而整型與實型之間又都是數據型,因此,在C中,整型、實型和字符型數據間可以進行混合運算。在混合運算時不同的數據先轉換成同一類型,再進行運算。轉換規(guī)則如下圖:三、各類數據間的混合運算 高 doublefloat long unsigned低 int char,short注:縱向的箭頭方向只表示級別高低,并不表示必須一級級按此轉換。三、各類數據間的混合運算
5、 例:10+a +i*f-d/e (i為int型;f為float;d為double;e為float。10+a a97=10+97(int)i*f ifloat=(float)int+float intfloat=(float)d/e edouble=(double)float+double floatdouble=(double)結論:運算的結果為混合運算的數據類型中最高的類型 。2算術運算符和算術表達式 + 、-、*、/、% % 求余運算符。其結果為兩數相除后所得余數,如7%3=1。注:本運算符要求兩側均為int型數據。1、基本的算術運算符優(yōu)先級: 如 a+b*c結合性:當一個運算對象兩側的
6、運算符的優(yōu)先級別相同時,C規(guī)定了各種運算符的結合方向,即“結合性”。 如: a+b-c;變量b兩側的運算符優(yōu)先級別相同,此時用到“結合性”的概念。2、算術運算符的優(yōu)先級和結合性一般形式:(類型名)(表達式)功能:把一個表達式(變量)轉換成所需類型。 例:若有x=3.8;則 (int)x的值為3注1:類型名應用()括起。注2:強制類型轉換只是生成一個中間數據,而原有數據類型、值均不發(fā)生變化。3、強制類型轉換運算符例:強制類型轉換#includemain() float x=3.7,y=4.4,z; z=(int)(x+y); printf(“x=%f,y=%f,z=%dn”,x,y,z); 3、
7、強制類型轉換運算符自增運算符為+,自減為-,作用分別是使變量的值加1或減1。具體使用時有以下兩種形式: +i、-i(使用i之前,先使i的值加1、減1) i+、i-(先將i的值取出來使用,用后再使i的值加1、減1)參看下例:若有定義 int i=10,j; 執(zhí)行 j=i+; /則 j=10;i=11; = 執(zhí)行 j=+i; /則 j=11;i=11; 4、自增、自減運算符 +,-只能用于變量而不能用于常量或表達式。如5+,(a+b)+都是錯誤的。+、-的結合方向為“自右向左”。若有語句:-i+;則相當于-(i+);即對于語句: printf(“%d”,-i+); 輸出結果為:-3 而此時i的值為
8、4; 對于i=3,j=(i+)+(i+),j的值為6。4、自增、自減運算符 在使用+、-運算符時,應注意以下三點:void main( ) int i=3,j,k; k=(i+)+(i+)+(i+); printf(“k=%d,i=%d”,k,i); i=3; k=(+i)+(+i); printf(“k=%d,i=%d”,k,i); i=3; k=(+i)+(i+); printf(“k=%d,i=%d”,k,i); i=3;j=10;k=i+j; printf(“k=%d,i=%d,j=%d”,k,i,j); 4、自增、自減運算符 3 賦值運算符和賦值表達式賦值時的類型轉換:字符整型實型
9、(對于占內存單元多的數據類型賦給少的時,會截取;少的給多的時,不變) 復合的賦值運算符:在”=”號之前加上其它運算符,就可構成復合運算符。如在”=”前加一個+”就構成了復合運算符“+=”。 賦值運算符:“=”,其作用是將一個數據賦給一個變量 3賦值運算符和賦值表達式對于復合的賦值運算符+=,可以這樣理解: 變量+=表達式 變量=變量+(表達式) 例如:a+=3;a=a+3; y+=y*8 y=y+(y*8)其它的復合的賦值運算符,其理解方式與+=相類似:如 a*=a+3 ?請考慮:若a=3,則a+=a*=a/=a的值3賦值運算符和賦值表達式賦值表達式:由賦值運算符將一個變量和一個表達或連接起來
10、的式子。如“a=5” 注意:賦值表達式不同于賦值語句。賦值語句的后面有分號而賦值表達式沒有。也就是說,給一個賦值表達式未尾加上分號后,就構成了賦值語句。C中規(guī)定:賦值表達式是有值的,它的值就是被賦值變量的值。即表達式“a=5”的值為5。由此又可賦值:b=(a=5); 又如:a=(b=4)+(c=5);3賦值運算符和賦值表達式a-=a+4a=a-(a+4)a=-4a*=a a=a*aa=16a+=a a=a+aa=32現在我們來看剛才的那個例子: 若a=3,則表達式a+=a*=a-=a+4的值? 4逗號運算符及逗號表達式逗號表達式的求解過程是:先求解表達式1的值,再求解表達式2的值,整個逗號表達
11、式的值是表達式2的值。如:若a=3;則表達式 a*=a+4,a*4 的值為 28*4用,將兩個表達式連接起來,稱為逗號表達式。如:6+8,3+4。逗號表達式的一般形式:表達式1,表達式2。4逗號運算符及逗號表達式逗號表達式可擴展為 表達式1、表達式2、表達式n 它的值為表達式n的值。 逗號運算符是所有運算符中級別最低的。因此,以下兩個表達式: 1)x=(a=3,6*3) 2) x=a=3,6*3 其意義是不同的。5關系運算符和關系表達式所謂的“關系運算”實際上就是比較運算,將兩個值進行比較,判斷比較的結果是否符合給定的條件。如“53”即為一個關系表達式。在C中,關系運算符有,=,3的值為1,5,=.,關系運算符賦值運算符使用關系運算符應注意的問題: 1)abc 2) f=abc ( 設a=5,b=4,c=3 )6 邏輯運算符和邏輯表達式 C中的邏輯運算符為&(與),|(或),!(非)。邏輯表達式:用邏輯運算符將關系表達式或邏輯量連接起來,就是邏輯表達式 在其它的高級語言中,邏輯運算符的兩邊要求是邏輯值(如Fox中的.T.和.F.),但C中沒有邏輯值。系統在進行邏輯運算時,對“0”處理為假,而“非0”即為“真”,即所有的非零數值都
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年物業(yè)使用權合同轉讓及綠色建筑標準執(zhí)行協議3篇
- 二零二五年度美容院供應鏈管理與優(yōu)化合作協議4篇
- 2025年度大學生父母離婚后子女生活費及教育金支付協議4篇
- 2025年度個人新能源汽車充電站場地承包協議4篇
- 二零二五版民間融資居間傭金分配協議范本4篇
- 2025年度旅游景區(qū)場地無償使用許可協議3篇
- 2025年度大棚蔬菜種植與農業(yè)創(chuàng)新驅動發(fā)展戰(zhàn)略合同4篇
- 2025年度棉花采摘與初加工服務外包合同4篇
- 2025年度廠房辦公室裝修項目施工安全培訓合同范本4篇
- 2025年碎石石粉礦山開采供應服務合同范本3篇
- 化學-廣東省廣州市2024-2025學年高一上學期期末檢測卷(一)試題和答案
- 2025四川中煙招聘高頻重點提升(共500題)附帶答案詳解
- 2025年云南大理州工業(yè)投資(集團)限公司招聘31人管理單位筆試遴選500模擬題附帶答案詳解
- 風電危險源辨識及控制措施
- 《教師職業(yè)道德與政策法規(guī)》課程教學大綱
- EHS工程師招聘筆試題與參考答案(某大型央企)2024年
- 營銷策劃 -麗亭酒店品牌年度傳播規(guī)劃方案
- 兒童傳染病預防課件
- 護理組長年底述職報告
- 集裝箱活動房供需合同
- 山西省2022年中考道德與法治真題試卷(含答案)
評論
0/150
提交評論