版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、第二章數(shù)據(jù)類型、運(yùn)算符與表達(dá)式楊麗波 朱迅 湯承林 編著劉長(zhǎng)榮 主審本章目標(biāo)v掌握C語(yǔ)言各種數(shù)據(jù)類型的用法v理解變量和常量的含義v掌握各類運(yùn)算符和表達(dá)式的運(yùn)算方法v掌握數(shù)據(jù)之間的混合運(yùn)算和數(shù)據(jù)類型轉(zhuǎn)換的方法2.1 C語(yǔ)言基本數(shù)據(jù)類型char數(shù)據(jù)類型非數(shù)值數(shù)值整型intshort intlong intdoublefloat非整型2.1 C語(yǔ)言基本數(shù)據(jù)類型 在在C語(yǔ)言中定義了語(yǔ)言中定義了4種基本數(shù)據(jù)類型:整數(shù)類型(種基本數(shù)據(jù)類型:整數(shù)類型(int)、)、單精度浮點(diǎn)型(單精度浮點(diǎn)型(float)、雙精度浮點(diǎn)型()、雙精度浮點(diǎn)型(double)、字符類)、字符類型(型(char)。它們是構(gòu)成其它據(jù)類
2、型的基礎(chǔ),其本身不能分解)。它們是構(gòu)成其它據(jù)類型的基礎(chǔ),其本身不能分解為其它類型。為其它類型。 數(shù)據(jù)類型所占用的空間長(zhǎng)度與編譯環(huán)境有關(guān)。本書采用數(shù)據(jù)類型所占用的空間長(zhǎng)度與編譯環(huán)境有關(guān)。本書采用Visual C+6.0編譯環(huán)境,其數(shù)據(jù)類型和取值范圍如表編譯環(huán)境,其數(shù)據(jù)類型和取值范圍如表2-1所所示。其中帶有方括號(hào)的關(guān)鍵字表示可選項(xiàng)。示。其中帶有方括號(hào)的關(guān)鍵字表示可選項(xiàng)。2.1 C語(yǔ)言基本數(shù)據(jù)類型類型取值范圍長(zhǎng)度(字節(jié))有效數(shù)字(位)整數(shù)整數(shù)signed short intsigned short int -2-215152 21515-1-12 2unsigned short intunsign
3、ed short int 0 02 21616-1-1signed intsigned int -2-231312 23131-1-14 4unsigned intunsigned int0 02 23232-1-1signed long intsigned long int -2-231312 23131-1-1unsigned long intunsigned long int 0 02 23232-1-1單精度浮點(diǎn)數(shù)單精度浮點(diǎn)數(shù)floatfloat1010-37-37101038384 46 67 7雙精度浮點(diǎn)數(shù)雙精度浮點(diǎn)數(shù)doubledouble1010-307-30710103083
4、088 815151616字符型字符型signed char signed char -2-27 72 27 7-1-11 1unsigned charunsigned char0 02 28 8-1-1表表2-1 基本數(shù)據(jù)類型及取值范圍基本數(shù)據(jù)類型及取值范圍2.2 常量與變量C語(yǔ)言程序的基本元素:語(yǔ)言程序的基本元素:程序程序指令指令標(biāo)識(shí)符、關(guān)鍵字、標(biāo)識(shí)符、關(guān)鍵字、常量、運(yùn)算符、分隔常量、運(yùn)算符、分隔符符等等2.2 常量與變量1.常量和符號(hào)常量常量和符號(hào)常量 常量又稱常數(shù),是指在程序運(yùn)行過(guò)程中數(shù)值不變的量。常量可以是數(shù)常量又稱常數(shù),是指在程序運(yùn)行過(guò)程中數(shù)值不變的量。常量可以是數(shù)值類型,也可以是
5、字符類型或是字符串,可以用一個(gè)符號(hào)來(lái)表示常量,叫值類型,也可以是字符類型或是字符串,可以用一個(gè)符號(hào)來(lái)表示常量,叫做符號(hào)常量。定義符號(hào)常量的一般形式為:做符號(hào)常量。定義符號(hào)常量的一般形式為: #define 符號(hào)常量符號(hào)常量 常量常量【例例2.1】編寫程序,計(jì)算半徑為編寫程序,計(jì)算半徑為4的圓的面積。的圓的面積。 #include #define PI 3.1415926 /定義符號(hào)常量定義符號(hào)常量PI表示表示3.1415926, void main() /這種定義形式稱為宏定義。這種定義形式稱為宏定義。 int r,s; r=4; s=PI*r*r; printf(“圓的面積是圓的面積是=%d
6、n”,s); 變量2.變量變量 變量是指在程序運(yùn)行過(guò)程中,其值可以發(fā)生變化的量。變量是指在程序運(yùn)行過(guò)程中,其值可以發(fā)生變化的量。變量的定義:變量的定義: 在在C語(yǔ)言中,變量要經(jīng)過(guò)定義才能使用,定義變量的一般形式為:語(yǔ)言中,變量要經(jīng)過(guò)定義才能使用,定義變量的一般形式為: 存儲(chǔ)類型存儲(chǔ)類型 數(shù)據(jù)類型數(shù)據(jù)類型 變量名變量名1,變量名,變量名2, C語(yǔ)言中任何數(shù)據(jù)類型,作用是確定變量語(yǔ)言中任何數(shù)據(jù)類型,作用是確定變量占用的存儲(chǔ)空間大小和可以表示數(shù)的范圍占用的存儲(chǔ)空間大小和可以表示數(shù)的范圍變量的名稱要滿足變量的名稱要滿足C語(yǔ)言標(biāo)識(shí)符的命名規(guī)則語(yǔ)言標(biāo)識(shí)符的命名規(guī)則可以同時(shí)定義多個(gè)相同類可以同時(shí)定義多個(gè)相同
7、類型的變量,之間用逗號(hào)隔開(kāi)型的變量,之間用逗號(hào)隔開(kāi)讀取讀取r值,計(jì)算值,計(jì)算3.1415926 *4*4變量程序內(nèi)存將計(jì)算結(jié)果存儲(chǔ)為s428.26 #include #define PI 3.1415926 void main() int r,s; r=4; s=PI*r*r; printf(“面積是面積是=%dn”,s); 定義變量,分定義變量,分配存儲(chǔ)空間配存儲(chǔ)空間存儲(chǔ)存儲(chǔ) r值為值為4變量(1)標(biāo)識(shí)符可以由字母、數(shù)字和)標(biāo)識(shí)符可以由字母、數(shù)字和 _(下劃線)組合而成。(下劃線)組合而成。(2)標(biāo)識(shí)符不能包含除)標(biāo)識(shí)符不能包含除 _ 以外的任何特殊字符,如以外的任何特殊字符,如%、# 、逗
8、號(hào)、空格等、逗號(hào)、空格等(3)標(biāo)識(shí)符必須以字母或)標(biāo)識(shí)符必須以字母或 _(下劃線)開(kāi)頭(下劃線)開(kāi)頭(4)標(biāo)識(shí)符不能包含空白字符(換行符、空格和制表符稱為空白字符)標(biāo)識(shí)符不能包含空白字符(換行符、空格和制表符稱為空白字符)(5)C 語(yǔ)言中的某些詞(例如語(yǔ)言中的某些詞(例如 int 和和 float 等)稱為保留字,具有特殊意等)稱為保留字,具有特殊意義,不能用作標(biāo)識(shí)符義,不能用作標(biāo)識(shí)符(6)C 語(yǔ)言區(qū)分大小寫,因此語(yǔ)言區(qū)分大小寫,因此 abc 與與ABC 是兩個(gè)不同的標(biāo)識(shí)符是兩個(gè)不同的標(biāo)識(shí)符例如在如下標(biāo)示符中合法的是:例如在如下標(biāo)示符中合法的是: %8, _xyz,s5,int,name,9d
9、,student_age變量例如:例如: int i,j; /定義整型變量定義整型變量i,j float f1,f2; /定義浮點(diǎn)型變量定義浮點(diǎn)型變量f1,f2 long p,m; /定義長(zhǎng)整型變量定義長(zhǎng)整型變量p,m unsigned short a,b; /定義無(wú)符號(hào)短整型變量定義無(wú)符號(hào)短整型變量a,b變量的三個(gè)基本要素就是:變量名稱、類型和值。變量的三個(gè)基本要素就是:變量名稱、類型和值。 定義變量的作用是在內(nèi)存為變量分配存儲(chǔ)空間,存放該變量的數(shù)據(jù)定義變量的作用是在內(nèi)存為變量分配存儲(chǔ)空間,存放該變量的數(shù)據(jù)值,因此在定義變量時(shí)必須確定變量的類型。在值,因此在定義變量時(shí)必須確定變量的類型。在C
10、語(yǔ)言中,變量賦值后語(yǔ)言中,變量賦值后才能夠使用。才能夠使用。變量v初始化變量初始化變量 初始化變量是指在定義變量的時(shí)候給變量賦初值,即定義和賦值在一初始化變量是指在定義變量的時(shí)候給變量賦初值,即定義和賦值在一條語(yǔ)句中實(shí)現(xiàn),初始化定義的形式如下:條語(yǔ)句中實(shí)現(xiàn),初始化定義的形式如下: 存儲(chǔ)類型存儲(chǔ)類型 數(shù)據(jù)類型數(shù)據(jù)類型 變量名變量名1=初值初值1,變量名,變量名2=初值初值2,.;例如:例如: int i=2,j=4; /定義整型變量定義整型變量i,j float f1=1.2,f2=2.4; /定義實(shí)型變量定義實(shí)型變量f1,f2 char ch1=a,ch2=b; /定義字符型變量定義字符型變量
11、ch1,ch2 2.3 整型數(shù)據(jù)1.整型常量整型常量 整型數(shù)據(jù)包括整型常量和整型變量。整型常量就是整型常數(shù),在整型數(shù)據(jù)包括整型常量和整型變量。整型常量就是整型常數(shù),在C語(yǔ)言語(yǔ)言中,整型常量用以下三種進(jìn)制形式表示:中,整型常量用以下三種進(jìn)制形式表示:(1)十進(jìn)制整數(shù)。如)十進(jìn)制整數(shù)。如12,789,-7,0等。等。(2)八進(jìn)制整數(shù)。以)八進(jìn)制整數(shù)。以0(零)開(kāi)頭的整數(shù)是八進(jìn)制整數(shù)。如(零)開(kāi)頭的整數(shù)是八進(jìn)制整數(shù)。如0123表示八進(jìn)表示八進(jìn)制整數(shù)制整數(shù)123,也可以表示為,也可以表示為(123)8,對(duì)應(yīng)十進(jìn)制的數(shù)值為,對(duì)應(yīng)十進(jìn)制的數(shù)值為182+281+380=83。-07表示八進(jìn)制的數(shù)表示八進(jìn)制的
12、數(shù)-7,也可以表示為,也可以表示為-(7) 8。(3)十六進(jìn)制整數(shù)。以)十六進(jìn)制整數(shù)。以0 x開(kāi)頭的整數(shù)表示十六進(jìn)制整數(shù)。如開(kāi)頭的整數(shù)表示十六進(jìn)制整數(shù)。如0 x12表示十表示十六進(jìn)制整數(shù)六進(jìn)制整數(shù)12,也可以表示為,也可以表示為(12) 16,對(duì)應(yīng)十進(jìn)制整數(shù)為,對(duì)應(yīng)十進(jìn)制整數(shù)為1161+2160=18。-0 x123表示十進(jìn)制數(shù)表示十進(jìn)制數(shù)-291。如果表示長(zhǎng)整型的數(shù),可以在數(shù)的后面加上如果表示長(zhǎng)整型的數(shù),可以在數(shù)的后面加上l或者或者L,例如:,例如:179、0 x179、0179分別是十進(jìn)制、十六進(jìn)制、八進(jìn)制的有符號(hào)整數(shù),分別是十進(jìn)制、十六進(jìn)制、八進(jìn)制的有符號(hào)整數(shù),179L、0 x179l、
13、0179L分別是十進(jìn)制、十六進(jìn)制、八進(jìn)制的有符號(hào)長(zhǎng)整數(shù)。分別是十進(jìn)制、十六進(jìn)制、八進(jìn)制的有符號(hào)長(zhǎng)整數(shù)。2.3 整型數(shù)據(jù)2 整型變量整型變量 在在C程序中表示整型數(shù)據(jù)是用以上三種進(jìn)制表示,但是在內(nèi)存中,數(shù)據(jù)程序中表示整型數(shù)據(jù)是用以上三種進(jìn)制表示,但是在內(nèi)存中,數(shù)據(jù)都是以二進(jìn)制的形式存儲(chǔ)的,在都是以二進(jìn)制的形式存儲(chǔ)的,在Visual C+6.0中,每一個(gè)整型數(shù)占用中,每一個(gè)整型數(shù)占用4個(gè)個(gè)字節(jié)(字節(jié)(32bit)內(nèi)存空間。如果下定義中)內(nèi)存空間。如果下定義中i在內(nèi)存空間的存儲(chǔ)情況如圖在內(nèi)存空間的存儲(chǔ)情況如圖2-1所所示:示: int i=9; 實(shí)際上,數(shù)據(jù)在內(nèi)存中是以補(bǔ)碼形式表示的。如果在內(nèi)存中存
14、儲(chǔ)十進(jìn)制實(shí)際上,數(shù)據(jù)在內(nèi)存中是以補(bǔ)碼形式表示的。如果在內(nèi)存中存儲(chǔ)十進(jìn)制數(shù)數(shù)-9,存儲(chǔ)形式如圖,存儲(chǔ)形式如圖2-2 所示。所示。 圖圖2-1 整數(shù)整數(shù)9的存儲(chǔ)形式的存儲(chǔ)形式圖圖2-2 整數(shù)整數(shù)-9的存儲(chǔ)形式的存儲(chǔ)形式2.4 實(shí)型數(shù)據(jù) 實(shí)型數(shù)據(jù)有實(shí)型常量和實(shí)型變量。實(shí)型數(shù)據(jù)有實(shí)型常量和實(shí)型變量。 C語(yǔ)言中實(shí)數(shù)類型分為單精度實(shí)型數(shù)語(yǔ)言中實(shí)數(shù)類型分為單精度實(shí)型數(shù)(float)和雙精度實(shí)型數(shù)和雙精度實(shí)型數(shù)(double),在實(shí)型數(shù)的后面加上在實(shí)型數(shù)的后面加上f或者或者F表示表示float類型,例如類型,例如9.8F,3.14f等,在等,在double型數(shù)的后面加上型數(shù)的后面加上l或者或者L來(lái)表示,例如來(lái)
15、表示,例如3.14L,-4.2l等。等。 實(shí)型常數(shù)有以下兩種表示形式:實(shí)型常數(shù)有以下兩種表示形式:(1)十進(jìn)制小數(shù)。由數(shù)字和小數(shù)點(diǎn)組成,其中小數(shù)點(diǎn)是必不可少的。)十進(jìn)制小數(shù)。由數(shù)字和小數(shù)點(diǎn)組成,其中小數(shù)點(diǎn)是必不可少的。如:如:.71,0.0,-0.234等。等。(2)指數(shù)形式。由數(shù)字和指數(shù)部分組成,如)指數(shù)形式。由數(shù)字和指數(shù)部分組成,如234e2,457E-8都是指數(shù)形式都是指數(shù)形式的實(shí)型數(shù),用指數(shù)形式表示實(shí)型數(shù)要注意的實(shí)型數(shù),用指數(shù)形式表示實(shí)型數(shù)要注意e(或或E)前面必須有數(shù)字,指數(shù)前面必須有數(shù)字,指數(shù)可以是正數(shù),也可以是負(fù)數(shù),但是必須是整數(shù)??梢允钦龜?shù),也可以是負(fù)數(shù),但是必須是整數(shù)。2.5
16、 字符型數(shù)據(jù)1 字符型常量字符型常量 字符型常量是兩邊用單引號(hào)括起來(lái)的單個(gè)普通字符或者轉(zhuǎn)義字符,字符型常量是兩邊用單引號(hào)括起來(lái)的單個(gè)普通字符或者轉(zhuǎn)義字符,如如a, c,B等。在計(jì)算機(jī)中,字符以其對(duì)應(yīng)的等。在計(jì)算機(jī)中,字符以其對(duì)應(yīng)的ASCII碼形式存放。碼形式存放。 字符形式字符形式意義意義ASCII值值字符形式字符形式意義意義ASCII值值b退格退格8單引號(hào)單引號(hào)39f換頁(yè)換頁(yè)12反斜杠反斜杠92n換行換行10v垂直制表垂直制表11r回車回車13a響鈴響鈴7t水平制表水平制表9?問(wèn)號(hào)問(wèn)號(hào)63”雙引號(hào)雙引號(hào)34%百分號(hào)百分號(hào)37表表2-2 常用的轉(zhuǎn)義字符表常用的轉(zhuǎn)義字符表 在在C語(yǔ)言中,為了表示
17、除鍵盤所有符號(hào)以外的字符,在一些字符的前面加語(yǔ)言中,為了表示除鍵盤所有符號(hào)以外的字符,在一些字符的前面加上斜杠上斜杠“”來(lái)表示另外一種含義,叫做轉(zhuǎn)義字符來(lái)表示另外一種含義,叫做轉(zhuǎn)義字符 。如如 A A6565, a a9797, 0 048 , 48 , nn1010字符型變量 2 字符型變量字符型變量 字符型變量用來(lái)存放字符常量,在內(nèi)存中占用一個(gè)字節(jié)的存儲(chǔ)空間,字符型變量用來(lái)存放字符常量,在內(nèi)存中占用一個(gè)字節(jié)的存儲(chǔ)空間,定義字符變量的一般形式為:定義字符變量的一般形式為: char ;例如例如: char ch1,ch2; /定義字符變量定義字符變量ch1、h2 char c1=a,c2=B
18、; /定義字符變量定義字符變量c1、c2,并初始化,并初始化字符變量存放字符字符變量存放字符ASCII碼,碼,char與與int數(shù)據(jù)間可進(jìn)行算術(shù)運(yùn)數(shù)據(jù)間可進(jìn)行算術(shù)運(yùn)算算例例 a=D; /* a=68; */ x=A+5; /* x=65+5; */ s=!+G /* s=33+71; */字符型變量#includevoid main() char ch; /定義字符變量定義字符變量 int chi; /定義整型變量定義整型變量 printf(”請(qǐng)輸入一個(gè)字符:請(qǐng)輸入一個(gè)字符:”); /輸出提示輸出提示 scanf(”%c”,&ch); /輸入字符數(shù)據(jù)輸入字符數(shù)據(jù) chi=ch; /先類型轉(zhuǎn)換后
19、賦值先類型轉(zhuǎn)換后賦值 printf(“ch的的ASCII值值為:為:%dn”,chi); /輸出整型數(shù)據(jù)(輸出整型數(shù)據(jù)(ASCII值)值)【例例2.2】輸入一個(gè)字符,輸出該字符對(duì)應(yīng)的輸入一個(gè)字符,輸出該字符對(duì)應(yīng)的ASCII值值字符型變量v程序運(yùn)行結(jié)果如圖程序運(yùn)行結(jié)果如圖2-3所示:所示:圖圖2-3 例例2.2運(yùn)行結(jié)果運(yùn)行結(jié)果 【注意注意】(1)chi=ch; 中中ch是字符型,是字符型,chi是整型,在賦值操作中是整型,在賦值操作中ch首先轉(zhuǎn)換為整型,首先轉(zhuǎn)換為整型,再賦給整型變量再賦給整型變量chi。 字符串常量3.字符串常量字符串常量 字符串常量是用雙引號(hào)括起來(lái)的零個(gè)、一個(gè)或者多個(gè)字符序列
20、。如字符串常量是用雙引號(hào)括起來(lái)的零個(gè)、一個(gè)或者多個(gè)字符序列。如“abc”、“xy5”、“$90”都是合法的字符串常量。都是合法的字符串常量。 注意:是字符串常量存儲(chǔ)在內(nèi)存空間中要在最后一個(gè)字符的后面加一個(gè)注意:是字符串常量存儲(chǔ)在內(nèi)存空間中要在最后一個(gè)字符的后面加一個(gè)空字符(空字符(“0”)作為結(jié)束標(biāo)志,即字符串常量占用的總的字節(jié)數(shù)是字)作為結(jié)束標(biāo)志,即字符串常量占用的總的字節(jié)數(shù)是字符串的長(zhǎng)度加一。符串的長(zhǎng)度加一。C語(yǔ)言中沒(méi)有字符串變量,用字符數(shù)組存放,這將在數(shù)組中講解。2.6 運(yùn)算符與表達(dá)式 C語(yǔ)言中運(yùn)算符按其功能分為:語(yǔ)言中運(yùn)算符按其功能分為: 算術(shù)運(yùn)算符算術(shù)運(yùn)算符 賦值運(yùn)算符賦值運(yùn)算符 關(guān)
21、系運(yùn)算符關(guān)系運(yùn)算符 邏輯運(yùn)算符邏輯運(yùn)算符 位運(yùn)算符位運(yùn)算符v表達(dá)式由操作數(shù)和運(yùn)算符的組合而成表達(dá)式由操作數(shù)和運(yùn)算符的組合而成v表達(dá)式中的操作數(shù)可以是變量、常量或者子表達(dá)式表達(dá)式中的操作數(shù)可以是變量、常量或者子表達(dá)式 學(xué)習(xí)運(yùn)算符時(shí)應(yīng)該注意:學(xué)習(xí)運(yùn)算符時(shí)應(yīng)該注意:v運(yùn)算符功能運(yùn)算符功能v與運(yùn)算量關(guān)系與運(yùn)算量關(guān)系要求運(yùn)算量個(gè)數(shù)要求運(yùn)算量個(gè)數(shù)要求運(yùn)算量類型要求運(yùn)算量類型v運(yùn)算符優(yōu)先級(jí)別運(yùn)算符優(yōu)先級(jí)別v結(jié)合方向結(jié)合方向v結(jié)果的類型結(jié)果的類型2.6 運(yùn)算符與表達(dá)式優(yōu)先級(jí)優(yōu)先級(jí)運(yùn)算符運(yùn)算符結(jié)合方向結(jié)合方向1 1() .() .(分量運(yùn)算符)(分量運(yùn)算符)從左至右從左至右2 2! ! + - - + - -
22、* *(指針)(指針) & sizeof(type& sizeof(type) )從右至左從右至左3 3* * (乘)(乘) / %/ %從左至右從左至右4 4+ -+ -從左至右從左至右5 5從左至右從左至右6 6 = = 從左至右從左至右7 7= != !=從左至右從左至右8 8& &從左至右從左至右9 9 (位異或)(位異或)從左至右從左至右1010| |從左至右從左至右1111&從左至右從左至右1212|從左至右從左至右1313?:?:(條件運(yùn)算符)(條件運(yùn)算符)從左至右從左至右1414= += -= = += -= * *= /= %= &= = |= = = =從右至左從右至左15
23、15, ,(逗號(hào)運(yùn)算符)(逗號(hào)運(yùn)算符)從左至右從左至右表表2-3 C語(yǔ)言運(yùn)算符優(yōu)先級(jí)和結(jié)合方向語(yǔ)言運(yùn)算符優(yōu)先級(jí)和結(jié)合方向 算術(shù)運(yùn)算符與表達(dá)式 1.算術(shù)運(yùn)算符和表達(dá)式算術(shù)運(yùn)算符和表達(dá)式 運(yùn)算符運(yùn)算說(shuō)明適用類型舉例+ +加法加法實(shí)數(shù)、整數(shù)實(shí)數(shù)、整數(shù)1.2+2.3=3.51.2+2.3=3.5;12+23=3512+23=35- -減法減法實(shí)數(shù)、整數(shù)實(shí)數(shù)、整數(shù)1.2-2.3= -1.11.2-2.3= -1.1;12-23=-1112-23=-11* *乘法乘法實(shí)數(shù)、整數(shù)實(shí)數(shù)、整數(shù)1.21.2* *2.3=2.762.3=2.76;1212* *23=27623=276/ /除法除法實(shí)數(shù)、整數(shù)實(shí)數(shù)、
24、整數(shù)1.2/2.3=0.5221.2/2.3=0.522;12/23=012/23=0% %求余求余整數(shù)整數(shù)12%23=1212%23=12+自加自加實(shí)數(shù)、整數(shù)實(shí)數(shù)、整數(shù)a+a+;+a+a-自減自減實(shí)數(shù)、整數(shù)實(shí)數(shù)、整數(shù)a-a-;-a-a表表2-4 算術(shù)運(yùn)算符算術(shù)運(yùn)算符 算術(shù)運(yùn)算符與表達(dá)式自增自減運(yùn)算符:自增自減運(yùn)算符:+,-有兩種形式:有兩種形式:1.前置:前置: +i 運(yùn)算規(guī)則:運(yùn)算規(guī)則:i的值增加的值增加1以后再參與其它運(yùn)算以后再參與其它運(yùn)算 -i 運(yùn)算規(guī)則:運(yùn)算規(guī)則:i的值減少的值減少1以后在參與其它運(yùn)算以后在參與其它運(yùn)算2.后置:后置: i+ 運(yùn)算規(guī)則:運(yùn)算規(guī)則:i先參與其它運(yùn)算以后再
25、增加先參與其它運(yùn)算以后再增加1 i- 運(yùn)算規(guī)則:運(yùn)算規(guī)則:i先參與其它運(yùn)算以后再減少先參與其它運(yùn)算以后再減少1#include void main() int i=1,j; j=+i; printf(“%2d,%2d”,i,j); /輸出輸出2,2 j=(+i)+ (+i); printf(“%2d,%2d”,i,j); /輸出輸出4,8,其中,其中8=4+4 j=(+i)+ (+i)+ (+i); printf(“%2d,%2d”,i,j); /輸出輸出7,19,其中,其中19=6+6+7 j=(+i)+ (+i)+ (+i)+ (+i); printf(“%2d,%2d”,i,j); /輸
26、出輸出11,39,其中,其中39=9+9+10+11 i=0;j=i-; 【例例2-3】在在Visual C+6.0中運(yùn)行程序,輸出自增中運(yùn)行程序,輸出自增/自減運(yùn)算的結(jié)果自減運(yùn)算的結(jié)果算術(shù)運(yùn)算符與表達(dá)式 printf(“%2d,%2d”,i,j); /輸出輸出-1,0 j=(i-)+(i-); printf(“%2d,%2d”,i,j); /輸出輸出-3,-2 j=(i-)+(i-)+(i-); printf(“%2d,%2d”,i,j); /輸出輸出-6,-9 j=(i-)+(i-)+(i-)+(i-); printf(“%2d,%2d”,i,j); /輸出輸出-10,-24程序運(yùn)行結(jié)果如
27、圖程序運(yùn)行結(jié)果如圖2-4所示:所示: 圖圖2-4 例例2-3運(yùn)行結(jié)果運(yùn)行結(jié)果 關(guān)系運(yùn)算符與表達(dá)式 1.關(guān)系運(yùn)算符關(guān)系運(yùn)算符 關(guān)系運(yùn)算就是進(jìn)行大小關(guān)系比較的運(yùn)算,關(guān)系運(yùn)算符均為二目運(yùn)算關(guān)系運(yùn)算就是進(jìn)行大小關(guān)系比較的運(yùn)算,關(guān)系運(yùn)算符均為二目運(yùn)算符,符, 其中操作數(shù)可以是變量、常量或表達(dá)式其中操作數(shù)可以是變量、常量或表達(dá)式。操作數(shù)操作數(shù)操作數(shù)操作數(shù) = 大于大于優(yōu)先級(jí)相同優(yōu)先級(jí)相同(高)(高)1+23 1+23 結(jié)果為結(jié)果為0 0 小于小于1+23 1+2=大于或等于大于或等于1+2=3 1+2=3 結(jié)果為結(jié)果為1 1=小于或等于小于或等于1+2=3 1+2b x+y0 a+4ch關(guān)系表達(dá)式的計(jì)算結(jié)
28、果關(guān)系表達(dá)式的計(jì)算結(jié)果 = 邏輯值(真或假)邏輯值(真或假)在在C語(yǔ)言中,語(yǔ)言中,“0”表示表示“假假”,“非非0”表示表示“真真”關(guān)系運(yùn)算符與表達(dá)式#includevoid main() int i=1,j=2,k=3; char ch1=n,ch2=m; printf(”%d,%dn”,i+jk,ijk); /輸出輸出0,1 printf(”%d,%dn”,ch1ch2,ch1=ch2-1); /輸出輸出0,0 printf(”%d,%d,%dn”,2*jk,ch2*20); /輸出輸出0,1,1【例例2-4】運(yùn)行程序,輸出關(guān)系表達(dá)式的計(jì)算結(jié)果】運(yùn)行程序,輸出關(guān)系表達(dá)式的計(jì)算結(jié)果注意:在注
29、意:在“ijk”ij 非運(yùn)算與非運(yùn)算與&、|共同作用時(shí)有如下規(guī)則:共同作用時(shí)有如下規(guī)則:(1)!(x&y)等價(jià)于等價(jià)于!x|!y(2)!(x|y)等價(jià)于等價(jià)于!x&!y(3)!(!x)等價(jià)于等價(jià)于x2.邏輯表達(dá)式邏輯表達(dá)式 邏輯表達(dá)式即用邏輯運(yùn)算符連接起來(lái)的式子。邏輯運(yùn)算的對(duì)象常常是邏輯表達(dá)式即用邏輯運(yùn)算符連接起來(lái)的式子。邏輯運(yùn)算的對(duì)象常常是關(guān)系表達(dá)式,在這種表達(dá)式中,要先進(jìn)行關(guān)系運(yùn)算,再進(jìn)行邏輯運(yùn)算。關(guān)系表達(dá)式,在這種表達(dá)式中,要先進(jìn)行關(guān)系運(yùn)算,再進(jìn)行邏輯運(yùn)算。例如:例如: ab&a0 !&|邏輯運(yùn)算符與表達(dá)式 注意:注意: 在運(yùn)算中可利用在運(yùn)算中可利用“&”和和“|”的短路作用,如在的短路
30、作用,如在ab&ab的值為假(即的值為假(即“0”),則不必進(jìn)行后面的運(yùn)算,可得出整個(gè)表達(dá)),則不必進(jìn)行后面的運(yùn)算,可得出整個(gè)表達(dá)式的結(jié)果為假。式的結(jié)果為假。 在在!x | y0中,如果中,如果!x的值為真(即非的值為真(即非“0”),則不必進(jìn)行后面的運(yùn)),則不必進(jìn)行后面的運(yùn)算,可得出整個(gè)表達(dá)式的結(jié)果為真。算,可得出整個(gè)表達(dá)式的結(jié)果為真。賦值運(yùn)算符與表達(dá)式 1.簡(jiǎn)單賦值運(yùn)算符與賦值表達(dá)式簡(jiǎn)單賦值運(yùn)算符與賦值表達(dá)式 簡(jiǎn)單賦值運(yùn)算符即簡(jiǎn)單賦值運(yùn)算符即“=”,賦值表達(dá)式就是用賦值符號(hào)連接起來(lái)的式子,賦值表達(dá)式就是用賦值符號(hào)連接起來(lái)的式子,其一般形式為:其一般形式為: 變量變量=表達(dá)式表達(dá)式 其作用是
31、將賦值符號(hào)右邊表達(dá)式的值賦給左邊的變量,右邊可以是其作用是將賦值符號(hào)右邊表達(dá)式的值賦給左邊的變量,右邊可以是常量、變量也可以是復(fù)雜的表達(dá)式,或者函數(shù)調(diào)用,如果表達(dá)式中有變量,常量、變量也可以是復(fù)雜的表達(dá)式,或者函數(shù)調(diào)用,如果表達(dá)式中有變量,則此變量必須經(jīng)過(guò)賦值。則此變量必須經(jīng)過(guò)賦值。例如:例如: y=1 /將將1賦值給賦值給y a=x /將變量將變量x的值賦給的值賦給a i=j-n+1 /將表達(dá)式的計(jì)算結(jié)果賦給將表達(dá)式的計(jì)算結(jié)果賦給i k=k+2 /將將k加加2的結(jié)果賦給的結(jié)果賦給k b=fun(x) /將函數(shù)調(diào)用的返回值賦給將函數(shù)調(diào)用的返回值賦給b 賦值運(yùn)算符與表達(dá)式v賦值運(yùn)算符具有右結(jié)合性
32、,因此賦值運(yùn)算符具有右結(jié)合性,因此x=y=z=8相當(dāng)于相當(dāng)于x=(y=(z=8)。v賦值表達(dá)式的值為賦值符號(hào)左邊的變量被賦的值。即賦值表達(dá)式的值為賦值符號(hào)左邊的變量被賦的值。即x=2表達(dá)式的值為表達(dá)式的值為x被賦的值被賦的值2。v在賦值表達(dá)式的后面加上分號(hào)就成為賦值語(yǔ)句。在賦值表達(dá)式的后面加上分號(hào)就成為賦值語(yǔ)句。例如例如: a=x+4; i=j-n+1; k=k+2;注意:不能在定義變量時(shí),用注意:不能在定義變量時(shí),用x=y=z=8方法為變量進(jìn)行初始化。方法為變量進(jìn)行初始化。2.復(fù)合賦值運(yùn)算符與賦值表達(dá)式復(fù)合賦值運(yùn)算符與賦值表達(dá)式復(fù)合賦值運(yùn)算符:復(fù)合賦值運(yùn)算符:+=、-=、*=、/=、%=、&
33、=、|=、=、=、 。一般形式為:一般形式為: 變量變量 雙目運(yùn)算符雙目運(yùn)算符=表達(dá)式表達(dá)式 它等效于:它等效于: 變量變量=變量變量 雙目運(yùn)算符雙目運(yùn)算符 表達(dá)式表達(dá)式例如:例如: i+=1; /等價(jià)于等價(jià)于 i=i+1 x*=y+2; /等價(jià)于等價(jià)于 x=x*(y-2) x%=3; /等價(jià)于等價(jià)于 x=x%3賦值運(yùn)算符與表達(dá)式 =注意:與注意:與x相乘的對(duì)象是相乘的對(duì)象是y+2的和,不是的和,不是y。條件運(yùn)算符 v 條件運(yùn)算符:條件運(yùn)算符: 包括兩個(gè)符號(hào):包括兩個(gè)符號(hào):“?” 和和 “=” 需要三個(gè)操作數(shù)(即三目運(yùn)算符)需要三個(gè)操作數(shù)(即三目運(yùn)算符)v 一般形式為:一般形式為: 表達(dá)式表達(dá)
34、式1 ? 表達(dá)式表達(dá)式2 : 表達(dá)式表達(dá)式3yesno條件表達(dá)式運(yùn)算法則:首先計(jì)算表達(dá)式1的值,如果結(jié)果為真,則計(jì)算表達(dá)式2的值為整個(gè)表達(dá)式的結(jié)果,否則,計(jì)算表達(dá)式3的值為整個(gè)表達(dá)式的結(jié)果。 例如:例如: 20?a:b條件運(yùn)算符#includevoid main() int x,y; printf(“請(qǐng)輸入兩個(gè)整數(shù):請(qǐng)輸入兩個(gè)整數(shù):”); scanf(“%d,%d”,&x,&y); printf(“%d,%d中的較大的數(shù)為:中的較大的數(shù)為:%dn”,x,y,xy?x:y) ; 【例【例2-5】 編寫程序?qū)崿F(xiàn):輸入兩個(gè)數(shù),輸出其中較大的數(shù)編寫程序?qū)崿F(xiàn):輸入兩個(gè)數(shù),輸出其中較大的數(shù)逗號(hào)運(yùn)算符與表達(dá)
35、式 逗號(hào)運(yùn)算符是逗號(hào)運(yùn)算符是“,”,用逗號(hào)運(yùn)算符連接起來(lái)的兩個(gè)或者多個(gè)表達(dá)式稱,用逗號(hào)運(yùn)算符連接起來(lái)的兩個(gè)或者多個(gè)表達(dá)式稱為逗號(hào)表達(dá)式。其一般形式為:為逗號(hào)表達(dá)式。其一般形式為: 表達(dá)式表達(dá)式1,表達(dá)式,表達(dá)式2,表達(dá)式表達(dá)式nv 運(yùn)算符級(jí)別:運(yùn)算符級(jí)別:15v 結(jié)合方向:從左至右結(jié)合方向:從左至右v 運(yùn)算法則:先計(jì)算表達(dá)式運(yùn)算法則:先計(jì)算表達(dá)式1的值,然后計(jì)算表達(dá)式的值,然后計(jì)算表達(dá)式2的值,以此類推,的值,以此類推,直到表達(dá)式直到表達(dá)式n的值計(jì)算完畢,其值就是整個(gè)逗號(hào)表達(dá)式的值。的值計(jì)算完畢,其值就是整個(gè)逗號(hào)表達(dá)式的值。 例如:例如: a=2,a+1,a+2逗號(hào)運(yùn)算符與表達(dá)式#includevoid main() int a,b,c; printf(請(qǐng)輸入兩個(gè)整數(shù):請(qǐng)輸入兩個(gè)整數(shù):); scanf(%d%d,&a,&b); printf(輸出逗號(hào)表達(dá)式輸出逗號(hào)表達(dá)式1運(yùn)算結(jié)果為:運(yùn)算結(jié)果為:); c*=(a+,b+,c=a+b,printf(%dn,c),c+=a*b); printf(輸出逗號(hào)表達(dá)式輸出逗號(hào)表達(dá)式2運(yùn)算結(jié)果為:運(yùn)算結(jié)果為:%dn,(a,b,c); 【例【例2-6】執(zhí)行程序,輸出逗號(hào)表達(dá)式的計(jì)算結(jié)果】執(zhí)行程序,輸出逗
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝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ù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年廣東省深圳市中考英語(yǔ)押題試卷(二)
- 上海市市轄區(qū)(2024年-2025年小學(xué)五年級(jí)語(yǔ)文)統(tǒng)編版競(jìng)賽題((上下)學(xué)期)試卷及答案
- 上海市縣(2024年-2025年小學(xué)五年級(jí)語(yǔ)文)統(tǒng)編版期末考試(下學(xué)期)試卷及答案
- 海南省陵水黎族自治縣2022-2023學(xué)年四年級(jí)上學(xué)期期中英語(yǔ)試題
- 衛(wèi)生監(jiān)督機(jī)構(gòu)公益目標(biāo)評(píng)估指標(biāo)調(diào)查表
- 【初中物理】光現(xiàn)象+單元練習(xí)-+2024-2025學(xué)年人教版物理八年級(jí)上冊(cè)
- 河北省保定市定州市2024-2025學(xué)年高二上學(xué)期11月期中物理試題(無(wú)答案)
- 職業(yè)學(xué)院輪機(jī)工程技術(shù)專業(yè)人才培養(yǎng)方案
- 廚房用甕非貴金屬制市場(chǎng)需求與消費(fèi)特點(diǎn)分析
- 戒煙用藥物制劑市場(chǎng)需求與消費(fèi)特點(diǎn)分析
- 非煤礦山培訓(xùn)課件
- 滬教版數(shù)學(xué)二年級(jí)上冊(cè)《正方體、長(zhǎng)方體的初步認(rèn)識(shí)》課件
- 醫(yī)院智能化弱電設(shè)計(jì)方案
- “雙減”背景下家校社協(xié)同育人的內(nèi)涵、機(jī)制與實(shí)踐路徑
- 涉密人員脫離涉密崗位審批表此表
- (完整版)辦理《出生醫(yī)學(xué)證明》委托書
- 高考專題復(fù)習(xí):散句與整句變換(課件32張)
- 施工安全用電檢查表(標(biāo)準(zhǔn)范本)
- 霧化吸入常見(jiàn)并發(fā)癥的預(yù)防與處理
- 論動(dòng)體的電動(dòng)力學(xué)(雙語(yǔ))
- 鞍鋼鲅魚圈鋼鐵基地項(xiàng)目設(shè)計(jì)方案
評(píng)論
0/150
提交評(píng)論