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

下載本文檔

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

文檔簡(jiǎn)介

第二章數(shù)據(jù)類型、運(yùn)算符與表達(dá)式2.1C語(yǔ)言的數(shù)據(jù)類型2.2常量與變量2.3整型數(shù)據(jù)2.4浮點(diǎn)型數(shù)據(jù)2.5字符型數(shù)據(jù)2.6各類數(shù)值型數(shù)據(jù)間的混合運(yùn)算2.7算術(shù)運(yùn)算符和算術(shù)表達(dá)式2.8逗號(hào)運(yùn)算符和逗號(hào)表達(dá)式2.1C語(yǔ)言的數(shù)據(jù)類型

C語(yǔ)言程序設(shè)計(jì)

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

字符型(char)短整型(short)

整型整型(int)

基本類型

數(shù)值類型長(zhǎng)整型(long)

單精度型(float)

實(shí)型

雙精度型(double)

數(shù)據(jù)類型

數(shù)組類型([])

構(gòu)造類型

結(jié)構(gòu)體類型(struct)

共用體類型(union)

枚舉類型(enum)

指針類型(*)

空類型(void)2.2常量與變量2.2.1常量(Constant)常量:在程序運(yùn)行過程中,其值不能被改變的量。常量分為字面常量和符號(hào)常量。字面常量:是在程序中直接引用的數(shù)據(jù)。例100、021、0x21、3.14、3.14E-4、'A'、'+'符號(hào)常量:用符號(hào)(標(biāo)識(shí)符)代表的常量。定義形式:#define標(biāo)識(shí)符常量數(shù)據(jù)

C語(yǔ)言程序設(shè)計(jì)

第二章數(shù)據(jù)類型、運(yùn)算符與表達(dá)式<>[例2.1]在程序中使用符號(hào)常量#include<stdio.h>#definePRICE30

main(){

intnum,total;

num=10;

total=num*PRICE;

printf("total=%d\n",total);}

C語(yǔ)言程序設(shè)計(jì)

第二章數(shù)據(jù)類型、運(yùn)算符與表達(dá)式關(guān)于符號(hào)常量程序編譯時(shí),符號(hào)常量被值替換。符號(hào)常量的值在程序運(yùn)行過程中不能被改變。

PRICE=40;

/*錯(cuò)誤*/符號(hào)常量不能指定類型。intPRICE;/*錯(cuò)誤*/

優(yōu)點(diǎn):含義清楚,方便修改。<>例#include<stdio.h>#definePI3.14

main(){

float

radius,perimeter,area;

radius=10;

perimeter=2*3.14*radius;

area=3.14*radius*radius;}

C語(yǔ)言程序設(shè)計(jì)

第二章數(shù)據(jù)類型、運(yùn)算符與表達(dá)式<>PIPI標(biāo)識(shí)符

用來標(biāo)識(shí)變量名、符號(hào)常量名、函數(shù)名、類型名、文件名等的有效字符序列。

定義規(guī)則:標(biāo)識(shí)符只能由字母、數(shù)字和下劃線三種字符組成,且第一個(gè)字符必須為字母或下劃線。

如:_1yearmonthstudent_namesum0

M.D.Jones$123#a3b?ca=b

注:(1)在C語(yǔ)言中,大小寫字母不等效;(2)用戶自定義的標(biāo)識(shí)符不能與保留字(關(guān)鍵

字)同名。

C語(yǔ)言程序設(shè)計(jì)

第二章數(shù)據(jù)類型、運(yùn)算符與表達(dá)式<>關(guān)鍵字(保留字)

具有特定含義的標(biāo)識(shí)符,用戶不能用來作自定義標(biāo)識(shí)符。C語(yǔ)言中的關(guān)鍵字較少,由ANSI標(biāo)準(zhǔn)推薦的關(guān)鍵字有32個(gè)。與數(shù)據(jù)類型有關(guān)的(14):

charintfloatdoublesignedunsignedshort

longvoidstructuniontypedef

enumsizeof與存儲(chǔ)類別有關(guān)的(4):

autoexternregisterstatic與程序控制結(jié)構(gòu)有關(guān)的(12):

dowhileforifelseswitchcasedefaultgoto

continuebreakreturn

C語(yǔ)言程序設(shè)計(jì)

第二章數(shù)據(jù)類型、運(yùn)算符與表達(dá)式2.2.2變量變量是指在程序運(yùn)行中,其值可以被改變的量。變量包括變量名和變量值變量名代表計(jì)算機(jī)內(nèi)存中的某一存儲(chǔ)空間,而該存儲(chǔ)空間中存放的數(shù)據(jù)就是變量的值。

C語(yǔ)言程序設(shè)計(jì)

第二章數(shù)據(jù)類型、運(yùn)算符與表達(dá)式<>使用變量時(shí)必須“先定義,后使用”。定義形式:

類型標(biāo)識(shí)符變量名1[,變量名2,變量名3,...];

C語(yǔ)言程序設(shè)計(jì)

第二章數(shù)據(jù)類型、運(yùn)算符與表達(dá)式自己設(shè)定,滿足標(biāo)識(shí)符的規(guī)定。如:int,float,char;不可省例如inta,b,c;

floatx,y;

charc1,c2;或intc1,c2;2.3.1整型常量的表示形式整型常量有三種形式:十進(jìn)制形式:與數(shù)學(xué)上表示相同。例如100,-12,0八進(jìn)制形式:由數(shù)字0~7組成,在數(shù)碼前加0。例如014,056十六進(jìn)制形式:由數(shù)字0~9、A~F組成,在數(shù)碼前加0X(數(shù)字0和字母X,大小寫均可)。例如0X12,0xAF

C語(yǔ)言程序設(shè)計(jì)

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

整型數(shù)據(jù)進(jìn)制間的換算二、八、十六進(jìn)制數(shù)到十進(jìn)制數(shù)的換算采用按權(quán)展開法。

例:(11001.11)2

=1*24+1*23+1*20+1*2-1+1*2-2=25.75

(33.50)8=3*81+2*80+5*8-1=26.625

(2AB.F)16

=2*162+10*161+11*160+15*16-1=683.93

C語(yǔ)言程序設(shè)計(jì)

第二章數(shù)據(jù)類型、運(yùn)算符與表達(dá)式十進(jìn)制數(shù)到二進(jìn)制數(shù)的換算整數(shù)部分采用“除2取余,逆序排列”法。具體做法:十進(jìn)制整數(shù)除以2得到商和余數(shù),繼續(xù)商除以2得到商和余數(shù),如此進(jìn)行直到商為零。所得余數(shù)逆序排列即為二進(jìn)制整數(shù)。小數(shù)部分采用“乘2取整,順序排列”法。具體做法:用2乘十進(jìn)制小數(shù),可以得到積,將積的整數(shù)部分取出,再用2乘余下的小數(shù)部分,如此進(jìn)行,直到積中的小數(shù)部分為零,或者達(dá)到所要求的精度為止。然后把取出的整數(shù)部分按順序排列起來即為二進(jìn)制小數(shù)。

例:233.8125=(11101001.1101)2

C語(yǔ)言程序設(shè)計(jì)

第二章數(shù)據(jù)類型、運(yùn)算符與表達(dá)式二進(jìn)制數(shù)到八、十六進(jìn)制數(shù)的換算,三位二進(jìn)制數(shù)對(duì)應(yīng)一位八進(jìn)制數(shù)、四位進(jìn)制書數(shù)對(duì)應(yīng)一位十六進(jìn)制,所以轉(zhuǎn)換時(shí)以小數(shù)點(diǎn)為分界線,整數(shù)部分從低到高,小數(shù)部分從高到底按位數(shù)分組,每組對(duì)應(yīng)的八或十六進(jìn)制數(shù)碼。

例:(11101001.1101)2

=(011101001.110100)2

=

(351.64)8

(11101001.1101)2

=(11101001.1101)2

=(E9.D)16

C語(yǔ)言程序設(shè)計(jì)

第二章數(shù)據(jù)類型、運(yùn)算符與表達(dá)式整型變量的分類(IBMPC)

基本型(整型)int

短整型short或shortint

長(zhǎng)整型long或longint

無(wú)符號(hào)整型:unsigned

無(wú)符號(hào)短整型:unsignedshort

無(wú)符號(hào)長(zhǎng)整型:unsignedlong

注意:C語(yǔ)言標(biāo)準(zhǔn)沒有規(guī)定整型變量在計(jì)算機(jī)內(nèi)存中所占的字節(jié)數(shù),它與具體的機(jī)器和操作系統(tǒng)有關(guān)。

C語(yǔ)言程序設(shè)計(jì)

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

整型變量整數(shù)類型的有關(guān)數(shù)據(jù):

類型類型說明符長(zhǎng)度數(shù)的范圍基本型

int

2字節(jié)-32768~32767短整型

short

2字節(jié)-215~215-1長(zhǎng)整型

long

4字節(jié)-231~231-1無(wú)符號(hào)整型

unsigned

2字節(jié)0~65535無(wú)符號(hào)短整型

unsignedshort

2字節(jié)0~65535無(wú)符號(hào)長(zhǎng)整型

unsignedlong

4字節(jié)0~232-1

C語(yǔ)言程序設(shè)計(jì)

第二章數(shù)據(jù)類型、運(yùn)算符與表達(dá)式TurboC2.0對(duì)整數(shù)類型的內(nèi)存分配

類型類型說明符長(zhǎng)度數(shù)的范圍基本型

int

4字節(jié)-2147483648~2147483648短整型

short2字節(jié)-215~215-1長(zhǎng)整型

long

4字節(jié)-231~231-1無(wú)符號(hào)整型

unsigned4字節(jié)0~232-1無(wú)符號(hào)短整型unsignedshort

2字節(jié)0~65535無(wú)符號(hào)長(zhǎng)整型unsignedlong

4字節(jié)0~232-1

C語(yǔ)言程序設(shè)計(jì)

第二章數(shù)據(jù)類型、運(yùn)算符與表達(dá)式VisualC++6.0對(duì)整數(shù)類型的內(nèi)存分配整型變量的定義與使用

[例2.2]

#include<stdio.h>

voidmain(){inta,b,c,d;

unsignedu;

a=12;b=-24;u=10;

c=a+u;d=b+u;

printf("a+u=%d,b+u=%d\n",c,d);

}

程序運(yùn)行顯示:a+u=22,b+u=-14

C語(yǔ)言程序設(shè)計(jì)

第二章數(shù)據(jù)類型、運(yùn)算符與表達(dá)式說明:可以看到不同種類的整型數(shù)據(jù)可以進(jìn)行算術(shù)運(yùn)算

數(shù)據(jù)在內(nèi)存中以二進(jìn)制形式存放。原碼、反碼和補(bǔ)碼

計(jì)算機(jī)對(duì)數(shù)值的表示有原碼、補(bǔ)碼和反碼三種形式,但以補(bǔ)碼方式存儲(chǔ)。原碼:最左邊符號(hào)位用數(shù)碼0表示正號(hào),用數(shù)碼1表示負(fù)號(hào),數(shù)值部分一般按二進(jìn)制形式表示。例[10]原=00001010

[-10]原=10001010

反碼:正數(shù)的反碼和原碼相同,負(fù)數(shù)的反碼是對(duì)該數(shù)的原碼除符號(hào)位外各位求反。例[10]反=[10]原=00001010

[-10]反=11110101

C語(yǔ)言程序設(shè)計(jì)

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

整型數(shù)據(jù)在內(nèi)存中的存放形式補(bǔ)碼:正數(shù)的補(bǔ)碼與原碼相同,負(fù)數(shù)補(bǔ)碼則先對(duì)該數(shù)的原碼取反(得反碼),然后末位加1

例 [10]補(bǔ)=[10]原=00001010

[-10]原=10001010

[-10]反=11110101

[-10]補(bǔ)=11110110

C語(yǔ)言程序設(shè)計(jì)

第二章數(shù)據(jù)類型、運(yùn)算符與表達(dá)式intx;x=10;long

y;y=-10;2000200120022005xy內(nèi)存內(nèi)存地址2003200400001010

00000000

11111111

11111111

11111111

11110110

C語(yǔ)言程序設(shè)計(jì)

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

數(shù)據(jù)超出表示范圍的情況稱為溢出。

[例2.3]整型數(shù)據(jù)的溢出

#include<stdio.h>

voidmain()

{inta,b;

a=32767;

b=a+1;

printf("%d,%d\n",a,b);

}TC環(huán)境下運(yùn)行結(jié)果:32767,-327682.3.4

整型數(shù)據(jù)的溢出

C語(yǔ)言程序設(shè)計(jì)

第二章數(shù)據(jù)類型、運(yùn)算符與表達(dá)式a0111111111111111b1000000000000000在將一個(gè)整型常量賦給整型變量時(shí)如何進(jìn)行類型匹配?請(qǐng)注意以下幾點(diǎn):如果一個(gè)整常量的值在-32768~+32767范圍內(nèi),認(rèn)為它是int型。

如果一個(gè)整常量的值超過了上述范圍,而在-2147483648~2147483647范圍內(nèi),則認(rèn)為它是1ongint型。一個(gè)非負(fù)值的整常量后面加字母u或U,認(rèn)為是unsigned型整變量(只要它的范圍不超過變量的表數(shù)范圍即可,防止溢出)

C語(yǔ)言程序設(shè)計(jì)

第二章數(shù)據(jù)類型、運(yùn)算符與表達(dá)式2.3.5整型常量的類型

在一個(gè)整常量后面加一個(gè)字母l或L則認(rèn)為是longint型常量。例如123l、432L。

C語(yǔ)言程序設(shè)計(jì)

第二章數(shù)據(jù)類型、運(yùn)算符與表達(dá)式main(){intx;x=10*9*8*7*6*5*4*3*2*1;printf("%d",x);}例

看看下面程序的輸出是什么?運(yùn)行結(jié)果:-3036longintx;%Ld

C語(yǔ)言程序設(shè)計(jì)

第二章數(shù)據(jù)類型、運(yùn)算符與表達(dá)式2.4.1浮點(diǎn)型常量的表示形式十進(jìn)制形式:由數(shù)字和小數(shù)點(diǎn)組成;

例如:3.44..3指數(shù)形式:由“十進(jìn)制小數(shù)”+“e(或E)”+“十進(jìn)制數(shù)整數(shù)”三部分組成。

例如:13.5e-6表示13.5×10-6注:(1)小數(shù)點(diǎn)不能單獨(dú)出現(xiàn);例如:0.=.0=0=0.0(2)e或E的兩邊必須有數(shù),且其后面必須為

整數(shù);例如:6E0.2e56E

C語(yǔ)言程序設(shè)計(jì)

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

浮點(diǎn)型數(shù)據(jù)浮點(diǎn)型變量的分類

單精度f(wàn)loat

4字節(jié)(32位)

10-38~1038

雙精度double

8字節(jié)(64位)

10-308~10308

floatx,y;/*指定x、y為單精度實(shí)型變量*/

doublez;/*指定z為雙精度實(shí)型變量*/

x=123456.711;z=123456.789;

float型變量只能接受7位有效數(shù)字,最后兩位數(shù)字不起作用。

double型變量能接受16位有效數(shù)字。

C語(yǔ)言程序設(shè)計(jì)

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

浮點(diǎn)型變量浮點(diǎn)型數(shù)據(jù)在內(nèi)存中的存放形式

浮點(diǎn)型數(shù)據(jù)是按照指數(shù)形式存儲(chǔ)的。系統(tǒng)把一個(gè)浮點(diǎn)型數(shù)據(jù)分成小數(shù)部分和指數(shù)部分,分別存放。指數(shù)部分采用規(guī)范化的指數(shù)形式。小數(shù)部分用二進(jìn)制表示,指數(shù)部分用2的冪次來表示。

C語(yǔ)言程序設(shè)計(jì)

第二章數(shù)據(jù)類型、運(yùn)算符與表達(dá)式浮點(diǎn)型數(shù)據(jù)的舍入誤差

由于浮點(diǎn)型變量是由有限的存儲(chǔ)單元組成的,因此能提供的有效數(shù)字總是有限的。在有效位以外的數(shù)字將被舍去。由此可能會(huì)產(chǎn)生一些誤差。

[例2.4]

#include<stdio.h>

voidmain()

{floata;

a=3.141592612;

printf("%f\n",a);

}

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

3.141593

C語(yǔ)言程序設(shè)計(jì)

第二章數(shù)據(jù)類型、運(yùn)算符與表達(dá)式說明:一個(gè)單精度浮點(diǎn)型變量只能保證的有效數(shù)字是7位有效數(shù)字,后面的數(shù)字是無(wú)意義的,并不準(zhǔn)確地表示該數(shù)。

例浮點(diǎn)型數(shù)據(jù)的舍入誤差

#include<stdio.h>

voidmain()

{floata,b;

a=123456.789e5;

b=a+20;

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

}

C語(yǔ)言程序設(shè)計(jì)

第二章數(shù)據(jù)類型、運(yùn)算符與表達(dá)式說明:應(yīng)當(dāng)避免將一個(gè)很大的數(shù)和一個(gè)很小的數(shù)直接相加或相減,否則就會(huì)“丟失”小的數(shù)C編譯系統(tǒng)將浮點(diǎn)型常量作為雙精度來處理,分配8個(gè)字節(jié)。

例如:f=2.45678*4523.65

系統(tǒng)先把2.45678和4523.65作為雙精度數(shù),然后進(jìn)行相乘的運(yùn)算,得到的乘也是一個(gè)雙精度數(shù)。精度高,速度慢。如果把一個(gè)浮點(diǎn)型常量賦給一個(gè)單精度變量f系統(tǒng)給出警告,警告不影響連接和運(yùn)行最后結(jié)果,但只取其結(jié)果前7位賦給浮點(diǎn)型變量f。

C語(yǔ)言程序設(shè)計(jì)

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

浮點(diǎn)型常量的類型如是在數(shù)的后面加字母f或F(如1.65f,654.87F),編譯系統(tǒng)就會(huì)把它們按單精度處理。

例如:floatf,g;f=3.1415926;/*警告*/g=1.65f;

C語(yǔ)言程序設(shè)計(jì)

第二章數(shù)據(jù)類型、運(yùn)算符與表達(dá)式2.5.1字符型常量

在計(jì)算機(jī)中,字符的使用占有很大的比重。字符包括各種文字、數(shù)字、符號(hào)和控制字符。用單引號(hào)括起來的一個(gè)字符;例如:'A'、'1'、'?'、'a'等。

‘a(chǎn)bc’、“a”用單引號(hào)括起來的由反斜杠(\)引導(dǎo)的轉(zhuǎn)義字符。

例如:'\n'、'\101'、'\x41'

C語(yǔ)言程序設(shè)計(jì)

第二章數(shù)據(jù)類型、運(yùn)算符與表達(dá)式只能是英文的單引號(hào)在統(tǒng)計(jì)字符個(gè)數(shù)時(shí),只能記為一個(gè)字符2.5

字符型數(shù)據(jù)轉(zhuǎn)義字符表

C語(yǔ)言程序設(shè)計(jì)

第二章數(shù)據(jù)類型、運(yùn)算符與表達(dá)式字符形式含義ASCII碼\n換行10\t水平制表位9\b退格8\r回車,將當(dāng)前位置移到本行開頭13\\、\'、\"代表字符“\”、“'”、“"”92、39、34\ddd1~3位八進(jìn)制數(shù)所代表的字符\xhh1~2位十六進(jìn)制數(shù)所代表的字符1234567812345678[例2.5]轉(zhuǎn)義字符的使用

main()

/*注@代表空格*/{printf("@@ab@c\t@de\rf\tg\n");

printf("h\ti\b\bj@@@k");

}

設(shè)一個(gè)輸出區(qū)占8列,試分析輸出結(jié)果。

C語(yǔ)言程序設(shè)計(jì)

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

@

a

b

@

c@

d

efg

hij@

@

@

k2.5.2字符變量字符變量用來存放字符常量。字符變量在內(nèi)存中占一字節(jié),取值范圍0~255。字符變量的定義和使用

charc1,c2;

c1='a';c2='b';

例charc1=‘a(chǎn)’;

C語(yǔ)言程序設(shè)計(jì)

第二章數(shù)據(jù)類型、運(yùn)算符與表達(dá)式對(duì)字符的編碼方法很多,使用最普遍的是美國(guó)標(biāo)準(zhǔn)信息交換碼,簡(jiǎn)稱ASCII碼。一個(gè)字符常量存放到一個(gè)字符變量中,實(shí)際上并不是把該字符的字型放到內(nèi)存中去,而是將該字符的相應(yīng)的ASCII代碼放到存儲(chǔ)單元中。這樣使字符型數(shù)據(jù)和整型數(shù)據(jù)之間可以通用。

C語(yǔ)言程序設(shè)計(jì)

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

字符數(shù)據(jù)在內(nèi)存中的存放形式[例2.6]向字符變量賦予整數(shù)main(){charc1,c2;c1=97;c2=98;printf("%c%c\n",c1,c2);printf("%d%d\n",c1,c2);}該例的輸出是:ab

97

98

相當(dāng)于:c1=‘a(chǎn)’;c2=‘b’;因?yàn)椋鹤址訟SCII碼存放,‘a(chǎn)’的ASCII碼為97,'b'的ASCII碼為98。

C語(yǔ)言程序設(shè)計(jì)

第二章數(shù)據(jù)類型、運(yùn)算符與表達(dá)式Turboc中的字符變量是有符號(hào)的,表示范圍是–128---127

main(){charc;c=130;ptintf("%c%d\n",c,c);}輸出結(jié)果是:e–126將charc;改成unsignedcharc;輸出結(jié)果變成:e130

C語(yǔ)言程序設(shè)計(jì)

第二章數(shù)據(jù)類型、運(yùn)算符與表達(dá)式[例2.7]/*大小寫字母轉(zhuǎn)換的程序*/main(){charc1,c2;

c1='a';c2='b';c1=c1-32;c2=c2-32;printf("%c%c\n",c1,c2);}

C語(yǔ)言程序設(shè)計(jì)

第二章數(shù)據(jù)類型、運(yùn)算符與表達(dá)式2.5.4字符串常量字符串常量:雙引號(hào)括起來的字符序列。

例:"Howdoyoudo."

"CHINA"

"a"

"$123.45"注意區(qū)別字符常量和字符串常量例:charc;c='a';c="a";/*錯(cuò)誤*/

C語(yǔ)言程序設(shè)計(jì)

第二章數(shù)據(jù)類型、運(yùn)算符與表達(dá)式字符串常量在內(nèi)存中的存放:每一個(gè)字符均以其ASCII碼存放,且最后添加一個(gè)“空字符”\0.

"CHINA"存放在內(nèi)存中的情況是:

注意:\0是系統(tǒng)自動(dòng)加入的,不需用戶輸入。C中沒有專門的字符串變量,要把字符串常量存儲(chǔ)在變量中,必須使用字符數(shù)組。

C語(yǔ)言程序設(shè)計(jì)

第二章數(shù)據(jù)類型、運(yùn)算符與表達(dá)式CHINA\02.6各類數(shù)據(jù)混合運(yùn)算整型、實(shí)型(包括單、雙精度)、字符型數(shù)據(jù)可以混合運(yùn)算。

10+'a'+1.5-8765.1234*'b'混合運(yùn)算時(shí),先轉(zhuǎn)換成同一種類型,然后進(jìn)行運(yùn)算。

C語(yǔ)言程序設(shè)計(jì)

第二章數(shù)據(jù)類型、運(yùn)算符與表達(dá)式高doublefloatlongunsigned低intchar,short例:inti;

floatf;doubled;longe;10+'a'+i

*

f-d

/

e高doublefloatlongunsigned低intchar,shortintdoubledouble上述轉(zhuǎn)換過程是由系統(tǒng)自動(dòng)進(jìn)行的。

C語(yǔ)言程序設(shè)計(jì)

第二章數(shù)據(jù)類型、運(yùn)算符與表達(dá)式doubledouble2.7

算術(shù)運(yùn)算符和算術(shù)表達(dá)式2.7.1C語(yǔ)言運(yùn)算符和C表達(dá)式簡(jiǎn)介C運(yùn)算符

算術(shù)運(yùn)算符:+-*/%++--

關(guān)系運(yùn)算符:<<===>>=!=

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

位運(yùn)算符:<<>>~|^&

賦值運(yùn)算符:=及其擴(kuò)展

條件運(yùn)算符:?:

逗號(hào)運(yùn)算符:,

指針運(yùn)算符:*&

求字節(jié)數(shù):sizeof

強(qiáng)制類型轉(zhuǎn)換:(類型)

分量運(yùn)算符:.->

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

其它:()-

C語(yǔ)言程序設(shè)計(jì)

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

表達(dá)式是由操作數(shù)和運(yùn)算符組成的序列。根據(jù)運(yùn)算符分為以下幾類:

算術(shù)表達(dá)式:如2+3-4.7*6.3

關(guān)系表達(dá)式:x<0

y<=z+6

邏輯表達(dá)式:x>0&&y>0

賦值表達(dá)式:a=

7

條件表達(dá)式:x>0?y=2:y=3

逗號(hào)表達(dá)式:a=2,b=3,c=4

C語(yǔ)言程序設(shè)計(jì)

第二章數(shù)據(jù)類型、運(yùn)算符與表達(dá)式2.7.2主要的算術(shù)運(yùn)算符和算術(shù)表達(dá)式基本的算術(shù)運(yùn)算符+

加法運(yùn)算符,如3+5

正值運(yùn)算符,如+3-

減法運(yùn)算符,如5-2

負(fù)值運(yùn)算符,如-3*

乘法運(yùn)算符,如3*5/

除法運(yùn)算符,如5/3%

模運(yùn)算符(求余運(yùn)算符),如7%4

C語(yǔ)言程序設(shè)計(jì)

第二章數(shù)據(jù)類型、運(yùn)算符與表達(dá)式說明:如果除號(hào)兩邊是整數(shù),即做整除。%兩邊必須為整數(shù)算術(shù)表達(dá)式和運(yùn)算符的優(yōu)先級(jí)與結(jié)合性算術(shù)表達(dá)式:用算術(shù)運(yùn)算符和括號(hào)將運(yùn)算對(duì)象連接起來、符合C語(yǔ)法規(guī)則的式子。

如:a*b/c-1.5+'a'運(yùn)算符的優(yōu)先級(jí):先乘除、后加減;括號(hào)優(yōu)先。運(yùn)算符的結(jié)合性:運(yùn)算對(duì)象兩側(cè)的運(yùn)算符優(yōu)先級(jí)相同時(shí),運(yùn)算符的結(jié)合方向。左結(jié)合性:結(jié)合方向?yàn)閺淖笾劣遥ㄏ茸蠛笥?,?jiǎn)稱左結(jié)合)。算術(shù)運(yùn)算符為左結(jié)合。右結(jié)合性:結(jié)合方向?yàn)閺挠抑磷螅ㄏ扔液笞?,?jiǎn)稱右結(jié)合)。賦值運(yùn)算符=為右結(jié)合。例:a=b=c=d=3

C語(yǔ)言程序設(shè)計(jì)

第二章數(shù)據(jù)類型、運(yùn)算符與表達(dá)式例已知:floata=2.0;intb=6,c=3;求解:a*b/c-1.5+’A’+abs(-5)=?12.0/34.0-1.52.5+65(int)67.5572.5

C語(yǔ)言程序設(shè)計(jì)

第二章數(shù)據(jù)類型、運(yùn)算符與表達(dá)式強(qiáng)制類型轉(zhuǎn)換

運(yùn)算符兩側(cè)的數(shù)據(jù)類型不同時(shí),先自動(dòng)進(jìn)行類型轉(zhuǎn)換,再運(yùn)算。程序員可以強(qiáng)制進(jìn)行某種轉(zhuǎn)換。

一般形式:

(類型名)(表達(dá)式)

例(double)a;(int)(x+y);(int)x+y(float)(5%3);

(int)a;

C語(yǔ)言程序設(shè)計(jì)

第二章數(shù)據(jù)類型、運(yùn)算符與表達(dá)式說明:強(qiáng)制類型轉(zhuǎn)換時(shí),得到一個(gè)所需類型的中間變量,原來變量的類型不發(fā)生變化。[例2.8]強(qiáng)制類型轉(zhuǎn)換#include<stdio.h>voidmain(){float

x;

inti;x=3.6;i=(int)x;printf(“x=%f,i=%d”,x,i);}

C語(yǔ)言程序設(shè)計(jì)

第二章數(shù)據(jù)類型、運(yùn)算符與表達(dá)式自增、自減運(yùn)算符

自增:使變量的值加1;自減:使變量的值減1。

++i;/*在使用i之前使i加1*/

--i;/*在使用i之前使i減1*/

i++;/*在使用i之后使i加1*/

i--;/*在使用i之后使i減1*/

i=3;

j=++i;/*先使i加1,再賦給j。*/k=i++;

print(“j=%d,i=%d,k=%d”,j,i,k);

輸出為:j=4,

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論