第2章數(shù)據(jù)類型運(yùn)算符與表達(dá)式_第1頁
第2章數(shù)據(jù)類型運(yùn)算符與表達(dá)式_第2頁
第2章數(shù)據(jù)類型運(yùn)算符與表達(dá)式_第3頁
第2章數(shù)據(jù)類型運(yùn)算符與表達(dá)式_第4頁
第2章數(shù)據(jù)類型運(yùn)算符與表達(dá)式_第5頁
已閱讀5頁,還剩21頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

第2章數(shù)據(jù)類型、運(yùn)算符與表達(dá)式Follow

me!2.1

C語言數(shù)據(jù)類型基本類型整型(int)實(shí)型(浮點(diǎn)型)單精度型(float)雙精度型(double)字符型(char)指針類型數(shù)據(jù)類型構(gòu)造類型數(shù)組類型結(jié)構(gòu)體類型(struct)共用體類型(union)枚舉類型(enum)無值類型(空類型)

(void)1.標(biāo)識(shí)符什么是標(biāo)識(shí)符(Label):就是名字。在C中有符號(hào)常量名、變量名、函數(shù)名、標(biāo)號(hào)、文件名、結(jié)構(gòu)類型名、各種用戶定義的對象名等。命名規(guī)則:構(gòu)成字符為:26個(gè)英文字母、數(shù)字0-9、下劃線須字母或下劃線開頭,后可跟任意可用字符注意:大小寫字母含義不同。Num和NUM為不同標(biāo)識(shí)符構(gòu)造標(biāo)識(shí)符時(shí)盡量做到“見名知意”。如sum,st_age關(guān)鍵字不可用作標(biāo)識(shí)符。如int。C有32個(gè)關(guān)鍵字,見17頁。2.2標(biāo)識(shí)符、常量和變量2.常量定義:在程序執(zhí)行期間,其值不變的量稱為常量。類型:直接常量:例如:10,-3,2.68,‘a(chǎn)’,”Hello”等號(hào)常量:用一個(gè)符號(hào)代表一個(gè)常量符

例如:#define

PI

3.1415926void

main(){

float

r,l,s;r=2;l=2*PI*r;s=PI*r*r;printf(“l(fā)=%f,s=%f”,l,s);}增加可讀性;提高可維護(hù)性符號(hào)常量必須先定義后才能使用符號(hào)常量的值在其作用域內(nèi)不能改變,也不能再被賦值符號(hào)常量名習(xí)慣用大寫字母表示3.變量定義:程序執(zhí)行期間值可以改變的量。變量兩個(gè)要素:變量名和變量值。說明:(1)變量要“先定義,后使用”定義格式:類型說明符 標(biāo)識(shí)符1,標(biāo)識(shí)符2

......標(biāo)識(shí)符n例:int

x,y,z; float

a,b,c,d;(2)可以定義變量同時(shí)給變量賦值——初始化例:int

x=10,y=20,z;3變量名變量值存儲(chǔ)單元a變量值存儲(chǔ)在內(nèi)存中,不同類型等變價(jià)量于占用的內(nèi)存單元(字節(jié))不同。在程序中通過變量in名t

引x,用y,z變;

量的值。x=10;y=20;例:下列標(biāo)識(shí)符中,合法的變量名有:age&M.D.John

12%gf

1add5thclassLotus_1_2_3_ce36cd*ef例:讀程序?qū)懡Y(jié)果

main(){

int

a=10,b=20,c;a=a+b;c=a-b;printf("a=%d,b=%d,c=%d",a,b,c);}2.3—2.5

基本數(shù)據(jù)類型的表示和存儲(chǔ)整型變量的分類:基本整型:int短整型:short

int長整型:long

int有符號(hào)

[signed]

int

無符號(hào)

unsigned

[int]有符號(hào)[signed]short

[int]無符號(hào)unsigned

short

[int]有符號(hào)

[signed]

long

[int]

無符號(hào)

unsigned

long

[int]數(shù)據(jù)在內(nèi)存中是以二進(jìn)制形式存放的000000000000101011111111111101101.

整型數(shù)據(jù)(int)每一個(gè)整型變量在內(nèi)存中占2個(gè)字節(jié),以補(bǔ)碼形式表示。如:+10-10說明:不指定有無符號(hào)時(shí),即省略signed或unsigned時(shí),隱含為有符號(hào)。通常:常量用l做后綴表示長整型數(shù),u

做后綴表示無符號(hào)數(shù);使用long型可得到大范圍整數(shù),但也會(huì)降低運(yùn)算速度;標(biāo)準(zhǔn)C中各種整數(shù)類型的表示范圍見19頁表2-1。2.3—2.5

基本數(shù)據(jù)類型的表示和存儲(chǔ)1.

整型數(shù)據(jù)(int)(1)整型常量十進(jìn)制:0-9組成,無小數(shù)。如123,-456,0八進(jìn)制:以0開頭,0-7組成,無小數(shù)。如0123,-011十六進(jìn)制:以0x或0X開頭,0-9和a-f(大小寫均可)組成 如0x123,-0x12(2)整型變量先定義,后使用數(shù)據(jù)在內(nèi)存中是以二進(jìn)制形式存放的2.

實(shí)型數(shù)據(jù)(又叫浮點(diǎn)數(shù)float)0.3141593314.159實(shí)型常量定點(diǎn)數(shù)形式:.123,123.,123.0

,0.0

(必須帶有小數(shù)點(diǎn))指數(shù)形式:123e3或123E3(E前必須有數(shù);E后須為整數(shù),可正可負(fù))1.234e3代表1.234×103

;e3,1e2.3,.e3,e不合法。規(guī)范化的指數(shù):E前的小數(shù)部分中的小數(shù)點(diǎn)前(左)只有一位非零數(shù)字(2)實(shí)型變量每一個(gè)實(shí)型變量在內(nèi)存中占4個(gè)字節(jié),按指數(shù)形式存儲(chǔ)。指數(shù)+

小數(shù)部分7位有效數(shù)字15~16位有效數(shù)字使用較少

實(shí)型變量的分類單精度:float雙精度:double長雙精度:long

double注意:各種實(shí)型數(shù)據(jù)的表示范圍見22頁表2-2。一個(gè)單精度的實(shí)型變量只能保證7位有效數(shù)字,后面的數(shù)字是無意義的。應(yīng)避免一個(gè)很大的數(shù)和一個(gè)很小的數(shù)直接相加減。如下例所示。常量的后綴用f表示單精度實(shí)型,如,23.45f后綴用l表示長雙精度型。如,23.45lC編譯系統(tǒng)將實(shí)型常量按雙精度處理,如,23.45,可在數(shù)后加F或f使其按單精度處例理:main(){ float

a,b;a=123456.789e5;

b=a+20;printf(“a=%f\n",a);printf(“b=%f\n",b);

}運(yùn)行結(jié)果:3.

字符型數(shù)據(jù)(1)字符常量?字符常量:用單引號(hào)括起來的一個(gè)字符。如:’a’,’!’,’X’轉(zhuǎn)義字符:特殊形式字符常量,以“\”開頭的字符序列,見23頁表2-3。?字符串常量:用雙引號(hào)括起來的零個(gè)或多個(gè)字符的序列。如:“This

isa string”

, ”5433”,

”,

””,

“\n”等。例:字符串常量“china

a\n\101\t\\”由幾個(gè)字符構(gòu)成?

11)(2)字符變量每一個(gè)字符變量只能存放一個(gè)字符,在內(nèi)存中占1個(gè)字節(jié),是將該字符對應(yīng)的ASCII碼放到存儲(chǔ)單元中并以二進(jìn)制形式表示。如:c1=‘a(chǎn)’一個(gè)字符型數(shù)據(jù)既可以以字符形式輸出,也可以以整數(shù)形式輸出。即字符型數(shù)據(jù)和整型數(shù)據(jù)是通用的??梢詫ψ址麛?shù)據(jù)進(jìn)行算術(shù)運(yùn)算。c19701100001例:大小寫字母轉(zhuǎn)換。將小寫字母a和b轉(zhuǎn)換為大寫字母A和B。main(){char

c1,c2;c1=‘a(chǎn)’;c2=‘b’;c1=c1-32;c2=c2-32;

/*大小寫字母ASCII值差32*/printf(“%c

%c”,c1,c2);

/*注意輸出格式符%c*/}(3)字符串常量用雙引號(hào)括起來的字符序列。如:”hi!”,”123abc”,”123.3”字符串常量結(jié)束標(biāo)志:\0在字符串常量后加“\0”(ASCII值為0,即空操作)字符串常量所占的存儲(chǔ)空間:取決于其所含的字符數(shù),為字符數(shù)+1。在C語言中,使用字符數(shù)組來存放字符串。例:語句printf(“this\0

is

astudent.”);輸出結(jié)果為:

this2.6

運(yùn)算符及表達(dá)式C的運(yùn)算符非常豐富,應(yīng)用范圍廣泛,可分為:算術(shù)運(yùn)算符:+

-

*

/

%

++ -

-關(guān)系運(yùn)算符:>

>=

<

<=

==

!=邏輯運(yùn)算符:!

&&

||位運(yùn)算符:<<

>>

~

|

&

^賦值運(yùn)算符:=

復(fù)合賦值運(yùn)算符條件運(yùn)算符:?:逗號(hào)運(yùn)算符:,指針運(yùn)算符:*

&求字節(jié)數(shù)運(yùn)算符:sizeof強(qiáng)制類型轉(zhuǎn)換運(yùn)算符:(類型)分量運(yùn)算符:

.

->下標(biāo)運(yùn)算符: [

]其他:

如函數(shù)調(diào)用運(yùn)算符()根據(jù)運(yùn)算符對操作對象(操作數(shù))數(shù)量的要求,運(yùn)算符分為:單目、雙目、三目等幾類。將操作對象用運(yùn)算符連接起來的式子——表達(dá)式。注意:表達(dá)式中的所有符號(hào)應(yīng)寫在同一橫行上;表達(dá)式按運(yùn)算符的優(yōu)先級、結(jié)合性運(yùn)算;表達(dá)式中只可以使用圓括號(hào)。如:求一元二次方程的根:(-b+sqrt(b*b-4*a*c))/(2*a)或(-b+sqrt(b*b-4*a*c))/2/a2.6.2

算術(shù)運(yùn)算符和算術(shù)表達(dá)式1.

基本的算術(shù)運(yùn)算符+(加或正)

-(減或負(fù))

*(乘)

/(除)%(取模或求余數(shù))說明:(1)上述運(yùn)算符均為雙目運(yùn)算符(即有兩個(gè)操作數(shù))(2)“+”“-”作單目運(yùn)算符時(shí)分別為正值、負(fù)值運(yùn)算符。在“/”運(yùn)算中,若操作數(shù)均為整數(shù),則執(zhí)行整除運(yùn)算, 舍去小數(shù)部分。例如:5/3=1“%”要求兩側(cè)均為整數(shù),“%”運(yùn)算不能用于float

和 double

型數(shù)據(jù)。例如:

5%3=2*

的優(yōu)先級相同且高于

-例:

除法運(yùn)算#include

<stdio.h>voidmain(){ float

a,b,c,d;a=1/3;b=1/3.0;c=2/3;d=-4/3;printf(“a=%.3f\nb=%.3f\nc=%.3f\nd=%.3f\n”,a,b,c,d);}運(yùn)行結(jié)果:a=0.000b=0.333c=0.000d=-1.000(6)算術(shù)表達(dá)式和運(yùn)算符的優(yōu)先級與結(jié)合性算術(shù)表達(dá)式:用算術(shù)運(yùn)算符和括號(hào)將常量、變量、函數(shù)等連接起來構(gòu)成的式子。如:(-b+sqrt(b*b-4*a*c))/2/a運(yùn)算優(yōu)先級:先按運(yùn)算符的優(yōu)先級高低執(zhí)行,級別相同按先左后右的結(jié)合方向執(zhí)行。例:將一個(gè)三位數(shù)按反順序輸出。#include

<stdio.h>void

main(){ int

a,i,j,k;scanf(“%d”,&a);i=a%10;a=a/10;j=a%10;a=a/10;k=a;printf(“%d%d%d”,i,j,k);}運(yùn)行結(jié)果:輸入:123輸出:3212.

自增、自減運(yùn)算符(++、--)作用:使變量的值增1或減1,i++相當(dāng)于i=i+1.如:

++i

,--ii++,

i--使用i之前,先使i的值加(減)1使用i之后,使i的值加(減)1例如:int a=1,b;b=++a

;printf(“%d,%d\n”,a,b);又:int a=1,b;b=a++

;printf(“%d,%d\n”,a,b);輸出:2,2輸出:2,1a=a+1;b=a;說明:(1)自增、自減運(yùn)算符為單目運(yùn)算符++、--只能用于變量(不能操作float和double型數(shù)據(jù)) 不能用于常量或表達(dá)式。例:10++,(x+y)++

,++’a’,

b++

中合法的為:自增、自減運(yùn)算符為右結(jié)合性。 例:-a++

相當(dāng)于

-(a++)例:讀出下列程序運(yùn)行后結(jié)果。#include

<stdio.h>void

main(){int

a=7,b=7,c,d;a=a++;b=++b;printf(“a=%d,b=%d\n”,a,b);c=a++;d=++b;printf(“c=%d,d=%d\n”,c,d);}運(yùn)行結(jié)果:a=8,b=8c=8,d=9例:自增自減運(yùn)算符#include

<stdio.h>void

main(){ int

a=1,b=2,c=3,d=4,i,j;i=a+++b;printf(“i=%d,a=%d,b=%d\n”,i,a,b);j=(c++)+(c++)+(c++);printf(“j=%d,c=%d\n”,j,c);printf(“d1=%d,d2=%d”,++d,++d);printf(“,d3=%d\n”,d);}運(yùn)行結(jié)果:i=3,a=2,b=2j=9,c=6d1=6,d2=5,d3=62.6.3

賦值運(yùn)算符和賦值表達(dá)式1.賦值運(yùn)算符(=)形式:變量名=常量或表達(dá)式作用:將右邊常量或表達(dá)式的值賦給左邊的變量例如:a=3; b=c+d

;當(dāng)賦值運(yùn)算符兩邊類型不一致時(shí),要進(jìn)行類型轉(zhuǎn)換。規(guī)則是:⑴實(shí)型數(shù)據(jù)賦給整型變量,舍去小數(shù)。⑵整型變量賦給單、雙精度變量,小數(shù)部分補(bǔ)零。⑶字符型數(shù)據(jù)賦給整型數(shù)據(jù),把對應(yīng)的ASCII碼置于低8位,高8位視情況而變。⑷shortint賦給longint,高端要根據(jù)正負(fù)補(bǔ)0或1。反之,只截取低8位。2.

復(fù)合賦值運(yùn)算符在賦值符“=”之前加上其它運(yùn)算符共有10種復(fù)合賦值運(yùn)算符+=

,-=,*=,/=,%=,<=,>=,&=,^

=,

|=例如:

a+=6a%=3x*=y+3相當(dāng)于:a=a+6相當(dāng)于:a=a%3相當(dāng)于:x=x*(y+3)非:x=x*y+

溫馨提示

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

評論

0/150

提交評論