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

下載本文檔

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

文檔簡介

1、第二章數(shù)據(jù)類型、運(yùn)算符與表達(dá)式楊麗波 朱迅 湯承林 編著劉長榮 主審本章目標(biāo)v掌握C語言各種數(shù)據(jù)類型的用法v理解變量和常量的含義v掌握各類運(yùn)算符和表達(dá)式的運(yùn)算方法v掌握數(shù)據(jù)之間的混合運(yùn)算和數(shù)據(jù)類型轉(zhuǎn)換的方法2.1 C語言基本數(shù)據(jù)類型char數(shù)據(jù)類型非數(shù)值數(shù)值整型intshort intlong intdoublefloat非整型2.1 C語言基本數(shù)據(jù)類型 在在C語言中定義了語言中定義了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ù)類型所占用的空間長度與編譯環(huán)境有關(guān)。本書采用數(shù)據(jù)類型所占用的空間長度與編譯環(huán)境有關(guān)。本書采用Visual C+6.0編譯環(huán)境,其數(shù)據(jù)類型和取值范圍如表編譯環(huán)境,其數(shù)據(jù)類型和取值范圍如表2-1所所示。其中帶有方括號的關(guān)鍵字表示可選項。示。其中帶有方括號的關(guān)鍵字表示可選項。2.1 C語言基本數(shù)據(jù)類型類型取值范圍長度(字節(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 int signed 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 int0 02 23232-1-1單精度浮點(diǎn)數(shù)單精度浮點(diǎn)數(shù)floatfloat1010-37-37101038384 46 67 7雙精度浮點(diǎn)數(shù)雙精度浮點(diǎn)數(shù)doubledouble1010-307-307101030830

4、88 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語言程序的基本元素:語言程序的基本元素:程序程序指令指令標(biāo)識符、關(guān)鍵字、標(biāo)識符、關(guān)鍵字、常量、運(yùn)算符、分隔常量、運(yùn)算符、分隔符符等等2.2 常量與變量1.常量和符號常量常量和符號常量 常量又稱常數(shù),是指在程序運(yùn)行過程中數(shù)值不變的量。常量可以是數(shù)常量又稱常數(shù),是指在程序運(yùn)行過程中數(shù)值不變的量。常量可以是數(shù)值類型,也可以是字

5、符類型或是字符串,可以用一個符號來表示常量,叫值類型,也可以是字符類型或是字符串,可以用一個符號來表示常量,叫做符號常量。定義符號常量的一般形式為:做符號常量。定義符號常量的一般形式為: #define 符號常量符號常量 常量常量【例例2.1】編寫程序,計算半徑為編寫程序,計算半徑為4的圓的面積。的圓的面積。 #include #define PI 3.1415926 /定義符號常量定義符號常量PI表示表示3.1415926, void main() /這種定義形式稱為宏定義。這種定義形式稱為宏定義。 int r,s; r=4; s=PI*r*r; printf(“圓的面積是圓的面積是=%dn

6、”,s); 變量2.變量變量 變量是指在程序運(yùn)行過程中,其值可以發(fā)生變化的量。變量是指在程序運(yùn)行過程中,其值可以發(fā)生變化的量。變量的定義:變量的定義: 在在C語言中,變量要經(jīng)過定義才能使用,定義變量的一般形式為:語言中,變量要經(jīng)過定義才能使用,定義變量的一般形式為: 存儲類型存儲類型 數(shù)據(jù)類型數(shù)據(jù)類型 變量名變量名1,變量名,變量名2, C語言中任何數(shù)據(jù)類型,作用是確定變量語言中任何數(shù)據(jù)類型,作用是確定變量占用的存儲空間大小和可以表示數(shù)的范圍占用的存儲空間大小和可以表示數(shù)的范圍變量的名稱要滿足變量的名稱要滿足C語言標(biāo)識符的命名規(guī)則語言標(biāo)識符的命名規(guī)則可以同時定義多個相同類可以同時定義多個相同類

7、型的變量,之間用逗號隔開型的變量,之間用逗號隔開讀取讀取r值,計算值,計算3.1415926 *4*4變量程序內(nèi)存將計算結(jié)果存儲為s428.26 #include #define PI 3.1415926 void main() int r,s; r=4; s=PI*r*r; printf(“面積是面積是=%dn”,s); 定義變量,分定義變量,分配存儲空間配存儲空間存儲存儲 r值為值為4變量(1)標(biāo)識符可以由字母、數(shù)字和)標(biāo)識符可以由字母、數(shù)字和 _(下劃線)組合而成。(下劃線)組合而成。(2)標(biāo)識符不能包含除)標(biāo)識符不能包含除 _ 以外的任何特殊字符,如以外的任何特殊字符,如%、# 、逗號

8、、空格等、逗號、空格等(3)標(biāo)識符必須以字母或)標(biāo)識符必須以字母或 _(下劃線)開頭(下劃線)開頭(4)標(biāo)識符不能包含空白字符(換行符、空格和制表符稱為空白字符)標(biāo)識符不能包含空白字符(換行符、空格和制表符稱為空白字符)(5)C 語言中的某些詞(例如語言中的某些詞(例如 int 和和 float 等)稱為保留字,具有特殊意等)稱為保留字,具有特殊意義,不能用作標(biāo)識符義,不能用作標(biāo)識符(6)C 語言區(qū)分大小寫,因此語言區(qū)分大小寫,因此 abc 與與ABC 是兩個不同的標(biāo)識符是兩個不同的標(biāo)識符例如在如下標(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; /定義長整型變量定義長整型變量p,m unsigned short a,b; /定義無符號短整型變量定義無符號短整型變量a,b變量的三個基本要素就是:變量名稱、類型和值。變量的三個基本要素就是:變量名稱、類型和值。 定義變量的作用是在內(nèi)存為變量分配存儲空間,存放該變量的數(shù)據(jù)定義變量的作用是在內(nèi)存為變量分配存儲空間,存放該變量的數(shù)據(jù)值,因此在定義變量時必須確定變量的類型。在值,因此在定義變量時必須確定變量的類型。在C語

10、言中,變量賦值后語言中,變量賦值后才能夠使用。才能夠使用。變量v初始化變量初始化變量 初始化變量是指在定義變量的時候給變量賦初值,即定義和賦值在一初始化變量是指在定義變量的時候給變量賦初值,即定義和賦值在一條語句中實(shí)現(xiàn),初始化定義的形式如下:條語句中實(shí)現(xiàn),初始化定義的形式如下: 存儲類型存儲類型 數(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; /定義字符型變量定義字符型變量c

11、h1,ch2 2.3 整型數(shù)據(jù)1.整型常量整型常量 整型數(shù)據(jù)包括整型常量和整型變量。整型常量就是整型常數(shù),在整型數(shù)據(jù)包括整型常量和整型變量。整型常量就是整型常數(shù),在C語言語言中,整型常量用以下三種進(jìn)制形式表示:中,整型常量用以下三種進(jìn)制形式表示:(1)十進(jìn)制整數(shù)。如)十進(jìn)制整數(shù)。如12,789,-7,0等。等。(2)八進(jìn)制整數(shù)。以)八進(jìn)制整數(shù)。以0(零)開頭的整數(shù)是八進(jìn)制整數(shù)。如(零)開頭的整數(shù)是八進(jìn)制整數(shù)。如0123表示八進(jìn)表示八進(jìn)制整數(shù)制整數(shù)123,也可以表示為,也可以表示為(123)8,對應(yīng)十進(jìn)制的數(shù)值為,對應(yīng)十進(jìn)制的數(shù)值為182+281+380=83。-07表示八進(jìn)制的數(shù)表示八進(jìn)制的數(shù)

12、-7,也可以表示為,也可以表示為-(7) 8。(3)十六進(jìn)制整數(shù)。以)十六進(jìn)制整數(shù)。以0 x開頭的整數(shù)表示十六進(jìn)制整數(shù)。如開頭的整數(shù)表示十六進(jìn)制整數(shù)。如0 x12表示十表示十六進(jìn)制整數(shù)六進(jìn)制整數(shù)12,也可以表示為,也可以表示為(12) 16,對應(yīng)十進(jìn)制整數(shù)為,對應(yīng)十進(jìn)制整數(shù)為1161+2160=18。-0 x123表示十進(jìn)制數(shù)表示十進(jìn)制數(shù)-291。如果表示長整型的數(shù),可以在數(shù)的后面加上如果表示長整型的數(shù),可以在數(shù)的后面加上l或者或者L,例如:,例如:179、0 x179、0179分別是十進(jìn)制、十六進(jìn)制、八進(jìn)制的有符號整數(shù),分別是十進(jìn)制、十六進(jìn)制、八進(jìn)制的有符號整數(shù),179L、0 x179l、0

13、179L分別是十進(jìn)制、十六進(jìn)制、八進(jìn)制的有符號長整數(shù)。分別是十進(jìn)制、十六進(jìn)制、八進(jìn)制的有符號長整數(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)制的形式存儲的,在都是以二進(jìn)制的形式存儲的,在Visual C+6.0中,每一個整型數(shù)占用中,每一個整型數(shù)占用4個個字節(jié)(字節(jié)(32bit)內(nèi)存空間。如果下定義中)內(nèi)存空間。如果下定義中i在內(nèi)存空間的存儲情況如圖在內(nèi)存空間的存儲情況如圖2-1所所示:示: int i=9; 實(shí)際上,數(shù)據(jù)在內(nèi)存中是以補(bǔ)碼形式表示的。如果在內(nèi)存中存儲

14、十進(jìn)制實(shí)際上,數(shù)據(jù)在內(nèi)存中是以補(bǔ)碼形式表示的。如果在內(nèi)存中存儲十進(jìn)制數(shù)數(shù)-9,存儲形式如圖,存儲形式如圖2-2 所示。所示。 圖圖2-1 整數(shù)整數(shù)9的存儲形式的存儲形式圖圖2-2 整數(shù)整數(shù)-9的存儲形式的存儲形式2.4 實(shí)型數(shù)據(jù) 實(shí)型數(shù)據(jù)有實(shí)型常量和實(shí)型變量。實(shí)型數(shù)據(jù)有實(shí)型常量和實(shí)型變量。 C語言中實(shí)數(shù)類型分為單精度實(shí)型數(shù)語言中實(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來表示,例如來表

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 字符型常量字符型常量 字符型常量是兩邊用單引號括起來的單個普通字符或者轉(zhuǎn)義字符,字符型常量是兩邊用單引號括起來的單個普通字符或者轉(zhuǎn)義字符,如如a, c,B等。在計算機(jī)中,字符以其對應(yīng)的等。在計算機(jī)中,字符以其對應(yīng)的ASCII碼形式存放。碼形式存放。 字符形式字符形式意義意義ASCII值值字符形式字符形式意義意義ASCII值值b退格退格8單引號單引號39f換頁換頁12反斜杠反斜杠92n換行換行10v垂直制表垂直制表11r回車回車13a響鈴響鈴7t水平制表水平制表9?問號問號63”雙引號雙引號34%百分號百分號37表表2-2 常用的轉(zhuǎn)義字符表常用的轉(zhuǎn)義字符表 在在C語言中,為了表示除

17、鍵盤所有符號以外的字符,在一些字符的前面加語言中,為了表示除鍵盤所有符號以外的字符,在一些字符的前面加上斜杠上斜杠“”來表示另外一種含義,叫做轉(zhuǎn)義字符來表示另外一種含義,叫做轉(zhuǎn)義字符 。如如 A65A65, a97a97, 048 , n10048 , n10字符型變量 2 字符型變量字符型變量 字符型變量用來存放字符常量,在內(nèi)存中占用一個字節(jié)的存儲空間,字符型變量用來存放字符常量,在內(nèi)存中占用一個字節(jié)的存儲空間,定義字符變量的一般形式為:定義字符變量的一般形式為: 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(”請輸入一個字符:請輸入一個字符:”); /輸出提示輸出提示 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】輸入一個字符,輸出該字符對應(yīng)的輸入一個字符,輸出該字符對應(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.字符串常量字符串常量 字符串常量是用雙引號括起來的零個、一個或者多個字符序

20、列。如字符串常量是用雙引號括起來的零個、一個或者多個字符序列。如“abc”、“xy5”、“$90”都是合法的字符串常量。都是合法的字符串常量。 注意:是字符串常量存儲在內(nèi)存空間中要在最后一個字符的后面加一個注意:是字符串常量存儲在內(nèi)存空間中要在最后一個字符的后面加一個空字符(空字符(“0”)作為結(jié)束標(biāo)志,即字符串常量占用的總的字節(jié)數(shù)是字)作為結(jié)束標(biāo)志,即字符串常量占用的總的字節(jié)數(shù)是字符串的長度加一。符串的長度加一。C語言中沒有字符串變量,用字符數(shù)組存放,這將在數(shù)組中講解。2.6 運(yùn)算符與表達(dá)式 C語言中運(yùn)算符按其功能分為:語言中運(yùn)算符按其功能分為: 算術(shù)運(yùn)算符算術(shù)運(yùn)算符 賦值運(yùn)算符賦值運(yùn)算符

21、關(guān)系運(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)算符時應(yīng)該注意:學(xué)習(xí)運(yùn)算符時應(yīng)該注意:v運(yùn)算符功能運(yùn)算符功能v與運(yùn)算量關(guān)系與運(yùn)算量關(guān)系要求運(yùn)算量個數(shù)要求運(yùn)算量個數(shù)要求運(yùn)算量類型要求運(yùn)算量類型v運(yùn)算符優(yōu)先級別運(yùn)算符優(yōu)先級別v結(jié)合方向結(jié)合方向v結(jié)果的類型結(jié)果的類型2.6 運(yùn)算符與表達(dá)式優(yōu)先級優(yōu)先級運(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= += -= = += -= * *= /= %= &am

23、p;= = |= = = =從右至左從右至左1515, ,(逗號運(yùn)算符)(逗號運(yùn)算符)從左至右從左至右表表2-3 C語言運(yùn)算符優(yōu)先級和結(jié)合方向語言運(yùn)算符優(yōu)先級和結(jié)合方向 算術(shù)運(yùn)算符與表達(dá)式 1.算術(shù)運(yùn)算符和表達(dá)式算術(shù)運(yùn)算符和表達(dá)式 運(yùn)算符運(yùn)算說明適用類型舉例+ +加法加法實(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=

24、27623=276/ /除法除法實(shí)數(shù)、整數(shù)實(shí)數(shù)、整數(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.后置:后置:

25、i+ 運(yùn)算規(guī)則:運(yùn)算規(guī)則:i先參與其它運(yùn)算以后再增加先參與其它運(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); p

26、rintf(“%2d,%2d”,i,j); /輸出輸出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

27、,j); /輸出輸出-10,-24程序運(yùn)行結(jié)果如圖程序運(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)先級相同優(yōu)先級相同(高)(高)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

28、 1+2b x+y0 a+4ch關(guān)系表達(dá)式的計算結(jié)果關(guān)系表達(dá)式的計算結(jié)果 = 邏輯值(真或假)邏輯值(真或假)在在C語言中,語言中,“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á)式的計算

29、結(jié)果】運(yùn)行程序,輸出關(guān)系表達(dá)式的計算結(jié)果注意:在注意:在“ijk”ij 非運(yùn)算與非運(yùn)算與&、|共同作用時有如下規(guī)則:共同作用時有如下規(guī)則:(1)!(x&y)等價于等價于!x|!y(2)!(x|y)等價于等價于!x&!y(3)!(!x)等價于等價于x2.邏輯表達(dá)式邏輯表達(dá)式 邏輯表達(dá)式即用邏輯運(yùn)算符連接起來的式子。邏輯運(yùn)算的對象常常是邏輯表達(dá)式即用邏輯運(yùn)算符連接起來的式子。邏輯運(yùn)算的對象常常是關(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)算符

30、與表達(dá)式 注意:注意: 在運(yùn)算中可利用在運(yùn)算中可利用“&”和和“|”的短路作用,如在的短路作用,如在ab&ab的值為假(即的值為假(即“0”),則不必進(jìn)行后面的運(yùn)算,可得出整個表達(dá)),則不必進(jìn)行后面的運(yùn)算,可得出整個表達(dá)式的結(jié)果為假。式的結(jié)果為假。 在在!x | y0中,如果中,如果!x的值為真(即非的值為真(即非“0”),則不必進(jìn)行后面的運(yùn)),則不必進(jìn)行后面的運(yùn)算,可得出整個表達(dá)式的結(jié)果為真。算,可得出整個表達(dá)式的結(jié)果為真。賦值運(yùn)算符與表達(dá)式 1.簡單賦值運(yùn)算符與賦值表達(dá)式簡單賦值運(yùn)算符與賦值表達(dá)式 簡單賦值運(yùn)算符即簡單賦值運(yùn)算符即“=”,賦值表達(dá)式就是用賦值符號連接起來的式

31、子,賦值表達(dá)式就是用賦值符號連接起來的式子,其一般形式為:其一般形式為: 變量變量=表達(dá)式表達(dá)式 其作用是將賦值符號右邊表達(dá)式的值賦給左邊的變量,右邊可以是其作用是將賦值符號右邊表達(dá)式的值賦給左邊的變量,右邊可以是常量、變量也可以是復(fù)雜的表達(dá)式,或者函數(shù)調(diào)用,如果表達(dá)式中有變量,常量、變量也可以是復(fù)雜的表達(dá)式,或者函數(shù)調(diào)用,如果表達(dá)式中有變量,則此變量必須經(jīng)過賦值。則此變量必須經(jīng)過賦值。例如:例如: y=1 /將將1賦值給賦值給y a=x /將變量將變量x的值賦給的值賦給a i=j-n+1 /將表達(dá)式的計算結(jié)果賦給將表達(dá)式的計算結(jié)果賦給i k=k+2 /將將k加加2的結(jié)果賦給的結(jié)果賦給k b=

32、fun(x) /將函數(shù)調(diào)用的返回值賦給將函數(shù)調(diào)用的返回值賦給b 賦值運(yùn)算符與表達(dá)式v賦值運(yùn)算符具有右結(jié)合性,因此賦值運(yùn)算符具有右結(jié)合性,因此x=y=z=8相當(dāng)于相當(dāng)于x=(y=(z=8)。v賦值表達(dá)式的值為賦值符號左邊的變量被賦的值。即賦值表達(dá)式的值為賦值符號左邊的變量被賦的值。即x=2表達(dá)式的值為表達(dá)式的值為x被賦的值被賦的值2。v在賦值表達(dá)式的后面加上分號就成為賦值語句。在賦值表達(dá)式的后面加上分號就成為賦值語句。例如:例如: a=x+4; i=j-n+1; k=k+2;注意:不能在定義變量時,用注意:不能在定義變量時,用x=y=z=8方法為變量進(jìn)行初始化。方法為變量進(jìn)行初始化。2.復(fù)合賦值

33、運(yùn)算符與賦值表達(dá)式復(fù)合賦值運(yùn)算符與賦值表達(dá)式復(fù)合賦值運(yùn)算符:復(fù)合賦值運(yùn)算符:+=、-=、*=、/=、%=、&=、|=、=、=、 。一般形式為:一般形式為: 變量變量 雙目運(yùn)算符雙目運(yùn)算符=表達(dá)式表達(dá)式 它等效于:它等效于: 變量變量=變量變量 雙目運(yùn)算符雙目運(yùn)算符 表達(dá)式表達(dá)式例如:例如: i+=1; /等價于等價于 i=i+1 x*=y+2; /等價于等價于 x=x*(y-2) x%=3; /等價于等價于 x=x%3賦值運(yùn)算符與表達(dá)式 =注意:與注意:與x相乘的對象是相乘的對象是y+2的和,不是的和,不是y。條件運(yùn)算符 v 條件運(yùn)算符:條件運(yùn)算符: 包括兩個符號:包括兩個符號:“?”

34、 和和 “=” 需要三個操作數(shù)(即三目運(yùn)算符)需要三個操作數(shù)(即三目運(yùn)算符)v 一般形式為:一般形式為: 表達(dá)式表達(dá)式1 ? 表達(dá)式表達(dá)式2 : 表達(dá)式表達(dá)式3yesno條件表達(dá)式運(yùn)算法則:首先計算表達(dá)式1的值,如果結(jié)果為真,則計算表達(dá)式2的值為整個表達(dá)式的結(jié)果,否則,計算表達(dá)式3的值為整個表達(dá)式的結(jié)果。 例如:例如: 20?a:b條件運(yùn)算符#includevoid main() int x,y; printf(“請輸入兩個整數(shù):請輸入兩個整數(shù):”); scanf(“%d,%d”,&x,&y); printf(“%d,%d中的較大的數(shù)為:中的較大的數(shù)為:%dn”,x,y,xy?

35、x:y) ; 【例【例2-5】 編寫程序?qū)崿F(xiàn):輸入兩個數(shù),輸出其中較大的數(shù)編寫程序?qū)崿F(xiàn):輸入兩個數(shù),輸出其中較大的數(shù)逗號運(yùn)算符與表達(dá)式 逗號運(yùn)算符是逗號運(yùn)算符是“,”,用逗號運(yùn)算符連接起來的兩個或者多個表達(dá)式稱,用逗號運(yùn)算符連接起來的兩個或者多個表達(dá)式稱為逗號表達(dá)式。其一般形式為:為逗號表達(dá)式。其一般形式為: 表達(dá)式表達(dá)式1,表達(dá)式,表達(dá)式2,表達(dá)式表達(dá)式nv 運(yùn)算符級別:運(yùn)算符級別:15v 結(jié)合方向:從左至右結(jié)合方向:從左至右v 運(yùn)算法則:先計算表達(dá)式運(yùn)算法則:先計算表達(dá)式1的值,然后計算表達(dá)式的值,然后計算表達(dá)式2的值,以此類推,的值,以此類推,直到表達(dá)式直到表達(dá)式n的值計算完畢,其值就是整個逗號表達(dá)式的值。的值計算完畢,其值就是整個逗號表達(dá)式的值。 例如:例如: a=2,a+1,a+2逗號運(yùn)算符與表達(dá)式#includevoid main() int a,b,c; printf(請輸入兩個整數(shù):請輸入兩個整數(shù):); scanf(%d%d,&a,&b); printf(輸出逗號表達(dá)式輸出逗號表達(dá)式1運(yùn)算結(jié)果為:運(yùn)算結(jié)果為:); c*=(a+,b+,c=a+b,printf(%dn,c),c+=a*b); printf(輸出逗號表達(dá)式輸出逗號表達(dá)式2運(yùn)算結(jié)果為:運(yùn)算結(jié)果為:%dn,(a,b,c); 【例【例2-6】執(zhí)行程序,輸出逗號表達(dá)式的計算結(jié)果】

溫馨提示

  • 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論