




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、課堂練習(xí)下面不是C語言根本數(shù)據(jù)類型的是?1指針類型2整型3無符號長整型3單精度實(shí)型基本類型基本類型構(gòu)造類型構(gòu)造類型指針類型指針類型空類型空類型整型整型浮點(diǎn)型(實(shí)型)浮點(diǎn)型(實(shí)型)字符型字符型枚舉類型枚舉類型短整型短整型長整型長整型短整型短整型數(shù)據(jù)類型數(shù)據(jù)類型無符號整型無符號整型單精度實(shí)型單精度實(shí)型雙精度實(shí)型雙精度實(shí)型數(shù)組類型數(shù)組類型結(jié)構(gòu)體類型結(jié)構(gòu)體類型聯(lián)合類型聯(lián)合類型數(shù)據(jù)類型數(shù)據(jù)類型Data TypeData Type可以在C程序中用作標(biāo)識符的一組是_1 if , define , BYED2 bb_b3, _1234, If3 FFF, FOR, -bcd4 3d, DM , SSIIu由英
2、文字母、數(shù)字和下劃線組成,大小寫敏感由英文字母、數(shù)字和下劃線組成,大小寫敏感u不能有非法字符不能有非法字符u不可以不可以是數(shù)字開頭是數(shù)字開頭u不允許使用關(guān)鍵字作為標(biāo)識符的名字不允許使用關(guān)鍵字作為標(biāo)識符的名字 nint, float, for, while, if等等標(biāo)識符命名標(biāo)識符命名下面不是C語言整型常量的是。10120 x113 08 4 -32768u以數(shù)字以數(shù)字“0開場的整型常數(shù)是八進(jìn)制數(shù)開場的整型常數(shù)是八進(jìn)制數(shù)0 02222、- -0 037370 01010和和1010大小不一樣大小不一樣因?yàn)榘诉M(jìn)制并不常用,所以此種表示法比較少見因?yàn)榘诉M(jìn)制并不常用,所以此種表示法比較少見u以以“0
3、 x0 x或者或者“0X0X開場的整型常數(shù)是十六進(jìn)開場的整型常數(shù)是十六進(jìn)制制A-FA-F和和a-fa-f用來表示十進(jìn)制的用來表示十進(jìn)制的10-1510-15十六進(jìn)制的形式比較常用,尤其在進(jìn)展位一級的控制的時候十六進(jìn)制的形式比較常用,尤其在進(jìn)展位一級的控制的時候0 x0 x1212、- -0 x0 x1F, -1F, -0 x0 x1f1f八進(jìn)制與十六進(jìn)制常數(shù)八進(jìn)制與十六進(jìn)制常數(shù)2可以使被定義的變量的一部分賦初值。 如如: : int a,b,c=5; 表示指定、為整型變量,但只對初始化,c的初值為3假如對幾個變量賦以同一個初值, 應(yīng)寫成:int a=3,b=3,c=3; 表示、的初值都是。 不
4、能寫成 int a=b=c=3; 注意:注意:初始化不是在編譯階段完成的而是在程序運(yùn)行時執(zhí)行本函數(shù)時賦初值的,相當(dāng)于有一個賦值語句。整型包括int,short,long、浮點(diǎn)型包括float,double可以混合運(yùn)算。在進(jìn)展運(yùn)算時,不同類型的數(shù)據(jù)要先轉(zhuǎn)換成同一類型,然后進(jìn)展運(yùn)算.類型轉(zhuǎn)換由系統(tǒng)自動進(jìn)展橫向:必定的轉(zhuǎn)換縱向:不同類型時的轉(zhuǎn)換方向3.8.1 運(yùn)算符簡介運(yùn)算符簡介 的運(yùn)算符有以下幾類:的運(yùn)算符有以下幾類:1算術(shù)運(yùn)算符 + - * / %2關(guān)系運(yùn)算符 = = = !=3邏輯運(yùn)算符 ! |4位運(yùn)算符 | 5賦值運(yùn)算符 及其擴(kuò)展賦值運(yùn)算符6條件運(yùn)算符 ?:7逗號運(yùn)算符 ,8指針運(yùn)算符 *和
5、9求字節(jié)數(shù)運(yùn)算符10強(qiáng)迫類型轉(zhuǎn)換運(yùn)算符 類型 11分量運(yùn)算符-12下標(biāo)運(yùn)算符13其他 如函數(shù)調(diào)用運(yùn)算符3.8.2 算術(shù)運(yùn)算符和算術(shù)表達(dá)式算術(shù)運(yùn)算符和算術(shù)表達(dá)式 1 1根本的算術(shù)運(yùn)算符根本的算術(shù)運(yùn)算符: : 加法運(yùn)算符,或正值運(yùn)算符。如:、 減法運(yùn)算符,或負(fù)值運(yùn)算符。如:、* * 乘法運(yùn)算符。如:* 除法運(yùn)算符。如: 模運(yùn)算符,或稱求余運(yùn)算符,兩側(cè)均應(yīng)為整型數(shù)據(jù),如:的值為。2 2 算術(shù)表達(dá)式和運(yùn)算符的優(yōu)先級與結(jié)合性算術(shù)表達(dá)式和運(yùn)算符的優(yōu)先級與結(jié)合性: 用算術(shù)運(yùn)算符和括號將運(yùn)算對象也稱操作數(shù)連接起來的、符合語法規(guī)那么的式子,稱為算術(shù)表達(dá)式算術(shù)表達(dá)式。運(yùn)算對象包括常量、變量、函數(shù)等。 例如例如:
6、: *.5a 是一個合法的表達(dá)式 語言規(guī)定了運(yùn)算符的優(yōu)先級和結(jié)合性。 在表達(dá)式求值時,先按運(yùn)算符的優(yōu)先級別上下次序執(zhí)行,例如先乘除后加減。 規(guī)定了各種運(yùn)算符的結(jié)合方向結(jié)合性 算術(shù)運(yùn)算符的結(jié)合方向?yàn)椤白宰笾劣遥聪茸蠛笥?。3 3強(qiáng)迫類型轉(zhuǎn)換運(yùn)算符強(qiáng)迫類型轉(zhuǎn)換運(yùn)算符 可以利用強(qiáng)迫類型轉(zhuǎn)換運(yùn)算符將一個表達(dá)式轉(zhuǎn)換成所需類型。 一般形式:類型名表達(dá)式例如:例如:double 將轉(zhuǎn)換成double類型intx+y 將x+y的值轉(zhuǎn)換成整型float5%3 將5%3的值轉(zhuǎn)換成float型有兩種類型轉(zhuǎn)換,一種是在運(yùn)算時不必用戶指定,系統(tǒng)自動進(jìn)展的類型轉(zhuǎn)換,如3+6.5。第二種是強(qiáng)迫類型轉(zhuǎn)換。當(dāng)自動類型轉(zhuǎn)換不能
7、實(shí)現(xiàn)目的時,可以用強(qiáng)迫類型轉(zhuǎn)換。 運(yùn)行結(jié)果:運(yùn)行結(jié)果: x3.600000, i=3#include stdio.hmainint m = 5;printfm / 2=%dn, m/2;printffloat m / 2 = %fn, float m / 2;printffloat m / 2 = %fn, float m / 2;printfm = %dn, m;4 4 自增、自減運(yùn)算符自增、自減運(yùn)算符 作用是使變量的值增或減如如: ,在使用之前,先使的值加 減,在使用之后,使的值加 減 i+i+與與+i+i的區(qū)別:的區(qū)別: 是先執(zhí)行后,再使用的值; 是先使用的值后,再執(zhí)行。例如:例如:設(shè)i
8、值為 ; i的值先變成4, 再賦給,j的值為 ; 先將 i的值3賦給,的值為,然后變?yōu)樽⒁猓鹤⒁猓?1自增運(yùn)算符,自減運(yùn)算符,只能用于變量,而不能用于常量或表達(dá)式, 2和的結(jié)合方向是“自右至左。 自增減運(yùn)算符常用于循環(huán)語句中使循環(huán)變量自動加。也用于指針變量,使指針指向下一個地址 表達(dá)式求值舉例:設(shè)表達(dá)式求值舉例:設(shè)x=2.5,a=7,y=4.7,求表達(dá)式,求表達(dá)式x+a%3*intx+y%2/4的值的值5 5 有關(guān)表達(dá)式使用中的問題說明有關(guān)表達(dá)式使用中的問題說明 ANSI C并沒有詳細(xì)規(guī)定表達(dá)式中的子表達(dá)式的求值順序,允許各編譯系統(tǒng)自己安排。 例如:對表達(dá)式 a = f1 +f2 并不是所有的
9、編譯系統(tǒng)都先調(diào)用f1 , 然后調(diào)用f2 。在有的情況下結(jié)果可能不同。有時會出現(xiàn)一些令人容易搞混的問題,因此務(wù)必要小心慎重。 語言中有的運(yùn)算符為一個字符,有的運(yùn)算符由兩個字符組成 ,為防止誤解,最好采取大家都能理解的寫法。 例如:不要寫成i+j的形式,而應(yīng)寫成 i+j的形式 在調(diào)用函數(shù)時,實(shí)參數(shù)的求值順序,標(biāo)準(zhǔn)并無統(tǒng)一規(guī)定。例如:例如:的初值為,假如有下面的函數(shù)調(diào)用: printf,i+ 在有的系統(tǒng)中,從左至右求值,輸出“,。在多數(shù)系統(tǒng)中對函數(shù)參數(shù)的求值順序是自右而左,函數(shù)輸出的是“,。以上這種寫法不宜提倡, 最好改寫成 j = i+;j = i+; printf printf%d%d, %d%
10、d, j j,i i不要寫出別人看不懂的也不知道系統(tǒng)會怎樣執(zhí)行程序1 1賦值運(yùn)算符賦值運(yùn)算符 賦值符號“就是賦值運(yùn)算符,它的作用是將一個數(shù)據(jù)賦給一個變量。如“的作用是執(zhí)行一次賦值操作或稱賦值運(yùn)算。把常量賦給變量。也可以將一個表達(dá)式的值賦給一個變量. 2 2類型轉(zhuǎn)換類型轉(zhuǎn)換 假如賦值運(yùn)算符兩側(cè)的類型不一致,但都是數(shù)值型或字符型時,在賦值時要進(jìn)展類型轉(zhuǎn)換。將浮點(diǎn)型數(shù)據(jù)包括單、雙精度賦給整型變量時,舍棄浮點(diǎn)數(shù)的小數(shù)部分。如如: :為整型變量,執(zhí)行“i=3.56的結(jié)果是使的值為,以整數(shù)形式存儲在整型變量中. 將整型數(shù)據(jù)賦給單、雙精度變量時,數(shù)值不變,但以浮點(diǎn)數(shù)形式存儲到變量中 如如: : 將賦給flo
11、at變量,即執(zhí)行,先將轉(zhuǎn)換成,再存儲在中。 將賦給型變量,即執(zhí)行,那么將補(bǔ)足有效位數(shù)字為,然后以雙精度浮點(diǎn)數(shù)形式存儲到變量中。 將一個double型數(shù)據(jù)賦給float變量時,截取其前面7位有效數(shù)字,存放到float變量的存儲單元4個字節(jié)中。但應(yīng)注意數(shù)值范圍不能溢出。 如如: :float f;double d=123.456789e100; f=d; 就出現(xiàn)溢出的錯誤。 假如將一個float型數(shù)據(jù)賦給double變量時,數(shù)值不變,有效位數(shù)擴(kuò)展到16位,在內(nèi)存中以8個字節(jié)存儲字符型數(shù)據(jù)賦給整型變量時,由于字符只占1個字節(jié),而整型變量為個字節(jié),因此將字符數(shù)據(jù)個二進(jìn)位放到整型變量存儲單元的低位中。第
12、一種情況: 假如所用系統(tǒng)將字符處理為無符號的字符類型,或程序已將字符變量定義為 型,那么將字符的位放到整型變量低位,高位補(bǔ)零例如:例如:將字符賦給型變量第二種情況: 假如所用系統(tǒng)如Turbo C+將字符處理為帶符號的即signed char,假設(shè)字符最高位為,那么整型變量高位補(bǔ);假設(shè)字符最高位為,那么高位全補(bǔ)。這稱為“符號擴(kuò)展,這樣做的目的是使數(shù)值保持不變,如變量字符以整數(shù)形式輸出為,的值也是。將一個int、short、long型數(shù)據(jù)賦給一個char型變量時,只將其低8位原封不動地送到char型變量即截斷。例如:例如:int i=289;char c=a;c=i; 賦值情況 :c的值為33,
13、假如用“%c輸出c,將得到字符“! 其ASCII碼為33。 將帶符號的整型數(shù)據(jù)int型賦給long型變量時,要進(jìn)展符號擴(kuò)展,將整型數(shù)的16位送到long型低16位中:假如int型數(shù)據(jù)為正值符號位為,那么long型變量的高16位補(bǔ);假如int型變量為負(fù)值符號位為,那么long型變量的高16位補(bǔ),以保持?jǐn)?shù)值不改變。 反之,假設(shè)將一個long型數(shù)據(jù)賦給一個int型變量,只將long型數(shù)據(jù)中低16位原封不動地送到整型變量即截斷。 例如:例如:int a; long b;a=b; 賦值情況如圖 : p61圖3-13假如八進(jìn)制數(shù),那么賦值后值為。 p61圖3-14將unsigned int型數(shù)據(jù)賦給lon
14、g int型變量時,不存在符號擴(kuò)展問題,只需將高位補(bǔ)即可。將一個unsigned類型數(shù)據(jù)賦給一個占字節(jié)數(shù)一樣的非unsigned型整型變量例如:unsigned int -int,unsigned long-long,unsigned short-short,將unsigned型變量的內(nèi)容原樣送到非unsigned型變量中,但假如數(shù)據(jù)范圍超過相應(yīng)整型的范圍,那么會出現(xiàn)數(shù)據(jù)錯誤。例如:例如:unsigned int 65535; int b;; 將整個送到中,由于是int,第位是符號位,因此b成了負(fù)數(shù)。根據(jù)補(bǔ)碼知識可知,的值為-1,可以用printf%d,;來驗(yàn)證。 將非unsigned型數(shù)據(jù)賦
15、給長度一樣的unsigned型變量,也是原樣照賦連原有的符號位也作為數(shù)值一起傳送。 短 長 :符號擴(kuò)展長 短 : 截斷截取相應(yīng)長度的低位 由于c語言使用靈敏,在不同類型數(shù)據(jù)之間賦值時,常常會 出現(xiàn)意想不到的結(jié)果,而編譯系統(tǒng)并不提示出錯,全靠程序員的經(jīng)歷來找出問題。這就要求編程人員知道這些賦值規(guī)那么。 在學(xué)習(xí)這部分內(nèi)容時不必死記,可以通過學(xué)生自學(xué)和上機(jī)理論來掌握。短短為無符號數(shù)、正數(shù)為無符號數(shù)、正數(shù) 長長高位補(bǔ)零高位補(bǔ)零短短為負(fù)為負(fù) 長長高位補(bǔ)高位補(bǔ)1不同類型的整型數(shù)據(jù)間的賦值規(guī)那么歸結(jié)為:“%u是輸出無符號數(shù)時所用的格式符。假如為正值,且在32767之間,那么賦值后數(shù)值不變。賦值情況見圖 運(yùn)行
16、結(jié)果:運(yùn)行結(jié)果: 3 3 復(fù)合的賦值運(yùn)算符復(fù)合的賦值運(yùn)算符 在賦值符“之前加上其他運(yùn)算符,可以構(gòu)成復(fù)合的運(yùn)算符。例如例如: 等價于 * 等價于 * 等價于 以“為例來說明,它相當(dāng)于使進(jìn)展一次自加的操作。即先使加,再賦給。為便于記憶,可以這樣理解:為便于記憶,可以這樣理解: a += b 其中a為變量,b為表達(dá)式 a += b將有下劃線的“a+移到“=右側(cè) |_ a = a + b 在“=左側(cè)補(bǔ)上變量名a 注意注意: :假如是包含假設(shè)干項(xiàng)的表達(dá)式,那么相當(dāng)于假如是包含假設(shè)干項(xiàng)的表達(dá)式,那么相當(dāng)于它有它有 括號。括號。如:如: x %= y+3 x %= y+3 |_ x = x %y+3不要錯寫
17、成x=x%y+3 但凡二元二目運(yùn)算符,都可以與賦值符一起組合成復(fù)合賦值符。 語言規(guī)定可以使用種復(fù)合賦值運(yùn)算符:語言規(guī)定可以使用種復(fù)合賦值運(yùn)算符:,* *,| | 4 4 賦值表達(dá)式賦值表達(dá)式 由賦值運(yùn)算符將一個變量和一個表達(dá)式連接起來的式子稱為“賦值表達(dá)式。一般形式為一般形式為: 例如例如: “5是一個賦值表達(dá)式 對賦值表達(dá)式求解的過程是:對賦值表達(dá)式求解的過程是: 求賦值運(yùn)算符右側(cè)的“表達(dá)式的值; 賦給賦值運(yùn)算符左側(cè)的變量。例如例如: 賦值表達(dá)式“=3*5的值為15,執(zhí)行表達(dá)式后,變量a的值也是15。 注意注意: 一個表達(dá)式應(yīng)該有一個值一個表達(dá)式應(yīng)該有一個值 左值左值 lvaluelvalu
18、e : 賦值運(yùn)算符左側(cè)的標(biāo)識符變量可以作為左值;而表達(dá)式就不能作為左值如a+b;常變量也不能作為左值, 右值右值 lvaluelvalue :出如今賦值運(yùn)算符右側(cè)的表達(dá)式 左值也可以出如今賦值運(yùn)算符右側(cè),因此左值 都可以作為右值。 賦值表達(dá)式中的“表達(dá)式,又可以是一個賦值表達(dá)式.例如例如: : a=b=5 分析分析: :括弧內(nèi)的“b=5是一個賦值表達(dá)式,它的值等于5。執(zhí)行表達(dá)式“a=b=5相當(dāng)于執(zhí)行“b=5和“ab兩個賦值表達(dá)式。 賦值運(yùn)算符按照“自右而左的結(jié)合順序,因此,“b5外面的括弧可以不要,即“a=b=5和“a=b=5等價.請分析下面的賦值表達(dá)式a=3*5=4*3分析分析: :先執(zhí)行括
19、弧內(nèi)的運(yùn)算,將15賦給a,然后執(zhí)行4*3的運(yùn)算,得12,再把12賦給a。最后a的值為12,整個表達(dá)式的值為12??梢钥吹絘=3*5出如今賦值運(yùn)算符的左側(cè),因此賦值表達(dá)式a=3*5是左值 注意注意: :在對賦值表達(dá)式a=3*5求解后,變量a得到值15執(zhí)行a=3*5=4*3時,實(shí)際上是將4*3的積12賦給變量a,而不是賦給3*5。不能寫成:a=3*5=4*3賦值表達(dá)式也可以包含復(fù)合的賦值運(yùn)算符。 如:如:a+=a-=a*a分析分析: :此賦值表達(dá)式的求解步驟如下 先進(jìn)展“*的運(yùn)算, 它相當(dāng)于*,a的值為144132。再進(jìn)展“的運(yùn)算,相當(dāng)于=a+-132,a的值為132-132-264。 將賦值表達(dá)式作為表達(dá)式的一種,使賦值操作不僅可以出如今賦值語句中,而且可以以表達(dá)式形式出如今其他語句如輸出語句、循環(huán)語句等中. 如:如:printf%d,a=b; 分析分析: :假如b的值為3, 那
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 箱式變壓器安裝施工方案
- 2025年酯類合作協(xié)議書
- 挖掘機(jī)樣機(jī)存放銷售協(xié)議
- 2024年酒水銷售合同
- 2025年三門峽貨運(yùn)資格證考試題庫
- 旅游行業(yè)數(shù)據(jù)統(tǒng)計報表
- 各行業(yè)企業(yè)資質(zhì)信息表
- 2024-2025學(xué)年山西省部分學(xué)校高一上學(xué)期選科調(diào)研考試地理試題(解析版)
- 勞務(wù)派遣合同十
- 協(xié)議與合同有啥不同
- GB-T 9251-2022 氣瓶水壓試驗(yàn)方法(高清版)
- 基于單片機(jī)的電子廣告牌設(shè)計畢業(yè)設(shè)計論文
- 中國聯(lián)通IMS接口規(guī)范 第三分冊:Sh接口 V1.0
- 環(huán)境化學(xué)物的毒性作用及其影響因素
- 判斷抽樣(課堂PPT)
- 簡明疼痛評估量表(BPI)
- QUY400t性能表履帶起重機(jī)
- 通用橫版企業(yè)報價單模板
- 國際網(wǎng)聯(lián)ITF教練員標(biāo)準(zhǔn)教材(共13頁)
- 中國移動B-BOSS系統(tǒng)總體結(jié)構(gòu)
- 人教版三年級下冊數(shù)學(xué)試卷5套
評論
0/150
提交評論