數據類型及表達式ppt課件_第1頁
數據類型及表達式ppt課件_第2頁
數據類型及表達式ppt課件_第3頁
數據類型及表達式ppt課件_第4頁
數據類型及表達式ppt課件_第5頁
已閱讀5頁,還剩39頁未讀 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、 本章主要學習標識符、關鍵字、常量、變量、本章主要學習標識符、關鍵字、常量、變量、數據類型、運算符、表達式、數據類型轉換等知識點。數據類型、運算符、表達式、數據類型轉換等知識點。數 據 類型運算符及表達式賦值運算符與賦值表達式自增與自減運算符關系運算符與關系表達式數據類型常量與變量標識符、關鍵字及分隔符條件運算符與條件表達式逗號運算符與逗號表達式長度運算符算術運算符與算術表達式邏輯運算符與邏輯表達式n重點和難點重點和難點n 重點:重點:n (1)變量的定義與運用變量的定義與運用 n(2)各種運算符及表達式的運用各種運算符及表達式的運用 n 難點:難點:n (1)數據類型的轉換數據類型的轉換 n

2、 (2)自增與自減運算符的運用自增與自減運算符的運用 【例【例3.1】實現輸入一個職工的姓名、年齡、工資的程序并輸出?!繉崿F輸入一個職工的姓名、年齡、工資的程序并輸出。 #include main() char employname6; int employage; float employwage; printf(請輸入職工姓名:); scanf(%s,employname); printf(請輸入職工年齡:); scanf(%d,&employage); printf(請輸入職工工資:); scanf(%f,&employwage); printf(“此職工 姓名:%s 年

3、齡:%d 工資:%0.2fn,employname, employage, employwage); n3.2.1標識符、關鍵字及分隔符標識符、關鍵字及分隔符n3.2.2數據類型數據類型n3.2.3常量與變量常量與變量1. 標識符標識符C言語中,變量,函數都需求有一個稱號,這個言語中,變量,函數都需求有一個稱號,這個稱號就叫做標識符。稱號就叫做標識符。C言語標識符命名規(guī)那么:言語標識符命名規(guī)那么:1標識符由字母標識符由字母AZ,az、下劃線、下劃線 _ 、數字數字0- 9組成。組成。2標識符必需以字母標識符必需以字母AZ,az或下劃線或下劃線 _ 開頭。開頭。3C言語中標識符嚴厲區(qū)分字母大小寫

4、。如:言語中標識符嚴厲區(qū)分字母大小寫。如:aB12、Ab12、AB12、ab12是不同的標識符。是不同的標識符。4標識符不能運用標識符不能運用C言語的關鍵字,如:言語的關鍵字,如: char、do、for、if、int等。等。用戶在定義標識符時還要留意以下幾個問題:用戶在定義標識符時還要留意以下幾個問題:1 1標識符時盡量做到標識符時盡量做到“見名知意。見名知意。2 2標識符的長度不要太長,建議在標識符的長度不要太長,建議在8 8個字符以個字符以內。內。3 3標識符中不能出現全角字符與空格。標識符中不能出現全角字符與空格。以下標識符是不合法的標識符:以下標識符是不合法的標識符:5abc5abc

5、、aa-bbaa-bb、a&ba&b、M.H.ThatcherM.H.Thatcher、a#a#、abab¥、¥、ifif以下標識符的是合法的標識符:以下標識符的是合法的標識符:A123A123、a_123a_123、_123_123、Aa_B029bAa_B029b2. 關鍵字關鍵字 關鍵字是關鍵字是C言語編譯程序本身所規(guī)定運用的公用詞,它言語編譯程序本身所規(guī)定運用的公用詞,它們有特定的含義。如們有特定的含義。如int用來定義整數類型。一切的用來定義整數類型。一切的C言言語關鍵字不能用作標識符,關鍵字必需用小寫字母表語關鍵字不能用作標識符,關鍵字必需用小寫字母表示。示。C言語

6、的關鍵字如表言語的關鍵字如表3-1所示。所示。 表表3-1 ANSI C規(guī)范規(guī)定的關鍵字規(guī)范規(guī)定的關鍵字3. 分隔符分隔符 分隔符用來使編譯器確認代碼在何處分隔,分隔符用來使編譯器確認代碼在何處分隔,C言語中分言語中分隔符包括注釋符、空白符及普通分隔符。隔符包括注釋符、空白符及普通分隔符。1注釋符注釋符 用用“/*開頭以開頭以“*/結尾,中間可以寫一行或多行內容,結尾,中間可以寫一行或多行內容,之間的內容對程序的執(zhí)行沒有任何影響,被編譯器忽略。之間的內容對程序的執(zhí)行沒有任何影響,被編譯器忽略。在程序中參與注釋可添加程序可讀性,使程序利于維護在程序中參與注釋可添加程序可讀性,使程序利于維護與移交

7、。與移交。如:如:int a,b;/*定義了定義了a,b兩個變量兩個變量*/2空白符空白符 空白符包括空格、回車、換行和制表符空白符包括空格、回車、換行和制表符Tab鍵符號,鍵符號,用來分隔程序的各根本成分。一個或多個空白符的作用用來分隔程序的各根本成分。一個或多個空白符的作用完全一樣。完全一樣。3普通分隔符普通分隔符 普通分隔符的作用也是用來分隔程序的各成分,在程序中有普通分隔符的作用也是用來分隔程序的各成分,在程序中有特定的含義。不能省略。特定的含義。不能省略。表表3-2 C言語的普通分隔符言語的普通分隔符C言語的數據類型分為:言語的數據類型分為:根本數據類型:整型、字符型、實型、空類型。

8、根本數據類型:整型、字符型、實型、空類型。構造類型:構造類型:數組型、構造體型、共用體型、數組型、構造體型、共用體型、枚舉類型、指針類型。枚舉類型、指針類型。本章主要引見根本數據類型。本章主要引見根本數據類型。 1. 常量常量 在程序執(zhí)行過程中,值不能發(fā)生改動的量稱為常量。在程序執(zhí)行過程中,值不能發(fā)生改動的量稱為常量。 (1)整型常量整型常量 不含小數的整數值,由數字不含小數的整數值,由數字09組成,前面可加正號組成,前面可加正號“+或或負號負號“-??刹捎檬M制、八進制、十六進制方式表示。十??刹捎檬M制、八進制、十六進制方式表示。十進制常量以非進制常量以非0開頭后跟多個開頭后跟多個09之間

9、的數字,如之間的數字,如351、+78、-98。八進制常量以。八進制常量以0開頭后跟多個開頭后跟多個07之間的數字,如之間的數字,如0745、-0123、+0351。十六進制常量以。十六進制常量以0和字母和字母x或或X開頭后跟多開頭后跟多個個09之間的數字或字母之間的數字或字母af之間的小寫字母或之間的小寫字母或AF之間的大之間的大寫字母,如寫字母,如0 x456、0X456f、-0X123FF、0 xa4d5、+0 x9abf。下面下面3條語句:條語句: printf(%dn,28); printf(%dn,034); printf(%dn,0 x1c); 輸出輸出3個個28,這是把,這是把

10、28分別以十進制、八進制、十六進制方式分別以十進制、八進制、十六進制方式表示。表示。 (2)實型常量實型常量C言語中實型常量有兩種表示方法:言語中實型常量有兩種表示方法: 十進制方式:由數字和小數點組成,且必需有十進制方式:由數字和小數點組成,且必需有小數點,如小數點,如123.0、-0.123、-.369、0.1、0.0。 科學計數法方式:由整數部分、小數點、小數科學計數法方式:由整數部分、小數點、小數部分、部分、e或或E、指數部分組成。要求、指數部分組成。要求e或或E后面指數部分必需為整數,后面指數部分必需為整數,e或或E前要有數前要有數字。如:字。如:0.2468E3、2.468e2、2

11、.468E+2都表示都表示246.8,而,而2.468E2.5、e36、0.236E5.5、E+898為非法表示。為非法表示。(3)字符型常量字符型常量字符常量是用一對單引號括起來的單個字符常量是用一對單引號括起來的單個字符。它是字符。它是ASCII碼字符集里的字符。碼字符集里的字符。C言語中字符常量的類型是言語中字符常量的類型是char型。型。C言語中字符常量有言語中字符常量有3種表示方法:種表示方法:用單引號括起來的一個用單引號括起來的一個ASCII字符。如:字符。如:a、A、0、=、5、+。直接用該字符的直接用該字符的ASCII碼的數值表示一個碼的數值表示一個字符常量。如字符常量。如97

12、可表示字符可表示字符a,48可表可表示字符示字符0,10可表示換行符??杀硎緭Q行符。用用“后面連一個特定的字母或特定符號后面連一個特定的字母或特定符號或或1到到3位八進制數或位八進制數或1到到2位十六進制數并位十六進制數并用單引號括起,這樣的組合又有了其它用單引號括起,這樣的組合又有了其它的意義,稱之為本義字符。如:的意義,稱之為本義字符。如:n、0、104、。#include main() printf(0123456789n); printf(abctdebabcn); printf(abcdearbcden); printf(abcdeanbcden); 程序運轉后,屏幕顯示:程序運轉后

13、,屏幕顯示:0123456789abc dabcbcdeeaabcdeabcdePress any key to continue(4)字符串常量字符串常量字符串常量是由雙引號括起來的由多個字符組成的字字符串常量是由雙引號括起來的由多個字符組成的字符序列。如:符序列。如:“John Wilson、“張三、張三、“A-32_64、“123.456789、“a。留意:不要將字符串常量與字符常量混淆,如下:留意:不要將字符串常量與字符常量混淆,如下:“a與與a是不同的,一個是字符串常量一個是字符常量。是不同的,一個是字符串常量一個是字符常量。注:注:C言語在存儲字符串常量時要開辟字符串中字符數言語在

14、存儲字符串常量時要開辟字符串中字符數+1的字節(jié)的空間,多出的那個字節(jié)用來存放的字節(jié)的空間,多出的那個字節(jié)用來存放0,它用,它用來表示字符串的終了。字符串常量來表示字符串的終了。字符串常量“A6029這個字這個字符串是如下方式存放的:符串是如下方式存放的:因此字符串因此字符串“A6029 在內存中占用在內存中占用6個字節(jié)。個字節(jié)。 (5)符號常量符號常量在在C言語中可用一個標識符來表示一個常量,有兩種運用方法。言語中可用一個標識符來表示一個常量,有兩種運用方法。用用#define方式定義符號常量。方式定義符號常量。格式:格式:#define 常量名常量名 常量值常量值如如:#define MAX

15、 10#define MIN 0#define DOLLARtoRMB 6.82652 分別用分別用MAX、MIN、DOLLARtoRMB這三個標識符來替代常量這三個標識符來替代常量10、0、6.82652這三個常量,在程序的運轉過程中這三個常量,在程序的運轉過程中MAX、MIN、DOLLARtoRMB的值是不能改動的。的值是不能改動的。用用const關鍵字來定義符號常量關鍵字來定義符號常量格式:格式:const 數據類型數據類型 常量名常量名 = 常量值常量值如如:const int MAX =10;const int MIN =0;const double DOLLARtoRMB = 6.

16、82652 ;功能與上例同。功能與上例同。2. 變量變量1變量定義格式變量定義格式數據類型數據類型 ;在定義時可以一次定義多個變量。在定義時可以一次定義多個變量。其中:其中:數據類型:可以是表數據類型:可以是表3-4中的某種數據類型。中的某種數據類型。注:編譯器不同各別數據類型占用的字節(jié)數不一定一樣。如:int型在Turboc2.0中占用2個字節(jié)16位,而在Visual C+6.0編譯器下占用4個字節(jié)32位,與long類型一樣;long double類型在Turboc2.0中占用10個字節(jié)80位,而在Visual C+6.0中占用8個字節(jié)64位。(2) 變量的初始化:變量的初始化:C程序中可以

17、在定義變量時為變量賦初值,即變量的程序中可以在定義變量時為變量賦初值,即變量的初始化。同時定義多個變量時,可以只把部分變量初初始化。同時定義多個變量時,可以只把部分變量初始化,如:始化,如:int x,y,z=5;float f1,f2=1.0,f3;假好像時定義多個同種類型的變量并賦同樣的初值,假好像時定義多個同種類型的變量并賦同樣的初值,可做如下處置:可做如下處置:int a=b=c=5;float f1=f2=f3=1.0;在在C程序中變量的初始化是分兩步完成的。如:程序中變量的初始化是分兩步完成的。如:int i=8; /*定義變量定義變量i并對其賦初值并對其賦初值8*/相當于執(zhí)行了如

18、下兩條語句:相當于執(zhí)行了如下兩條語句:int i; /*聲明變量聲明變量i為整數類型為整數類型*/i=8; /*為變量為變量i賦值賦值8*/ #include main()int i=32767; short s=32767;long l=2147483647;unsigned ui=65535; unsigned short us=65535;unsigned long ul=4294967295; char c=c; unsigned char uc=99;float f=0.23f;double d=0.7E-3; long double ld=1.23456789E15;printf(

19、整型變量整型變量 i=%d,i);printf(n短整型變量短整型變量 s=%d,s);printf(n長整型變量長整型變量 l=%ld,l);printf(n無符號整型變量無符號整型變量 ui=%d,ui);printf(n無符號短整型變量無符號短整型變量 us=%d,us);printf(n無符號長整型變量無符號長整型變量 ul=%ld,ul);printf(n字符型變量字符型變量 c=%c,c);printf(n無符號字符型變量無符號字符型變量uc=%c,uc);printf(n單精度浮點型變量單精度浮點型變量 f=%f,f);printf(n雙精度浮點型變量雙精度浮點型變量 d=%f,

20、d);printf(n長雙精度浮點型變量長雙精度浮點型變量 ld=%fn,ld);n【例【例3.3】變量聲明例如?!孔兞柯暶骼?。(3)變量類型的轉換變量類型的轉換自動類型轉換自動類型轉換自動類型轉換需滿足兩個條件,第一兩種類型彼此兼容,自動類型轉換需滿足兩個條件,第一兩種類型彼此兼容,第二目的類型的取值范圍大于源類型。第二目的類型的取值范圍大于源類型。C言語的數據類型的取值范圍由小到大的依次為:言語的數據類型的取值范圍由小到大的依次為:charshortintlongfloatdoublelong double如:如:int i=5;double x=i;int型變量型變量i自動轉換為自動轉

21、換為double型并賦值給型并賦值給x。char c=a;int j=c;char型變量型變量c自動轉換為自動轉換為int型的型的97并賦值給并賦值給j。強迫類型轉換當兩種類型彼此不兼容或目的類型取值范圍小于源類型時,就無法進展自動轉換了,這時需求進展強迫轉換。強迫轉換格式如下:數據類型#include void main() char c;int b;float f=128.6;b=(int)f; c=(char)f; printf( 將將float類型類型f強迫轉化為強迫轉化為int類型類型b的結果為:的結果為:%d n,b);printf( 將將float類型類型f強迫轉化為強迫轉化為c

22、har類型類型c的結果為:的結果為:%d n,c);【例【例3.4】強迫轉換例如?!繌娖绒D換例如。3.3.1賦值運算符與賦值表達式賦值運算符與賦值表達式3.3.2算術運算符與算術表達式算術運算符與算術表達式3.3.3自增與自減運算符自增與自減運算符3.3.4關系運算符與關系表達式關系運算符與關系表達式3.3.5邏輯運算符與邏輯表達式邏輯運算符與邏輯表達式3.3.6條件運算符與條件表達式條件運算符與條件表達式3.3.7逗號運算符與逗號表達式逗號運算符與逗號表達式3.3.8長度運算符長度運算符n運算符是表示某種操作的符號,在運算符是表示某種操作的符號,在C言語中,言語中,除控制語句和輸入輸出函數外

23、,其他一切根本除控制語句和輸入輸出函數外,其他一切根本操作都作為運算符處置。運算符的操作對象稱操作都作為運算符處置。運算符的操作對象稱為運算數,用運算符把運算數銜接起來的一個為運算數,用運算符把運算數銜接起來的一個有意義的式子就叫做表達式。有意義的式子就叫做表達式。n這里主要引見賦值運算符、算術運算符、關系這里主要引見賦值運算符、算術運算符、關系運算符、條件運算符、邏輯運算符、逗號運算運算符、條件運算符、邏輯運算符、逗號運算符和求字節(jié)數運算符及其相應表達式。其它運符和求字節(jié)數運算符及其相應表達式。其它運算符在后續(xù)章節(jié)中學習。算符在后續(xù)章節(jié)中學習。1. 賦值運算符與賦值表達式賦值運算符與賦值表達

24、式賦值運算符是賦值運算符是“=,作用是將右邊的表達式的值賦給,作用是將右邊的表達式的值賦給左邊的變量,同時賦值表達式的值為左邊變量得到的左邊的變量,同時賦值表達式的值為左邊變量得到的值。如值。如a=5是把數值是把數值5存儲到變量存儲到變量a所指向的內存單元中,所指向的內存單元中,同時同時a=5這個表達式的值為這個表達式的值為5。賦值運算符的結合方向是賦值運算符的結合方向是“從右至左。如表達式從右至左。如表達式a=b=3+5的計算過程為:先計算的計算過程為:先計算3+5的值為的值為8賦給賦給b,那,那么么b的值為的值為8,又將,又將b=3+5的值的值8賦給變量賦給變量a。C言語中賦值運算符的優(yōu)先

25、級僅高于逗號運算符,低言語中賦值運算符的優(yōu)先級僅高于逗號運算符,低于其它運算符。于其它運算符。2. 復合賦值運算符復合賦值運算符在賦值運算符前加上其它運算符號構成復合運算符號。在賦值運算符前加上其它運算符號構成復合運算符號。如:如:+=,-=,*=,/=。在。在C言語中規(guī)定可以運用言語中規(guī)定可以運用10種復種復合運算符。即:合運算符。即:+=,-=,*=,/=,%=,=,&=,=,| =后后5種是有符合位運算符,將在第種是有符合位運算符,將在第9章引見。章引見。/* 源文件名:源文件名:Li3_5.c功能:復合賦值測試功能:復合賦值測試*/#include void main()int

26、 a=2,b=3,c=5,x=6; printf(x*=a+b+c執(zhí)行后執(zhí)行后x值為:值為:%dn, x*=a+b+c );printf(a*=c+=(b+=8)%5執(zhí)行后執(zhí)行后a的值為:的值為:%dn, a*=c+= ( b += 8 ) % 5 );printf(執(zhí)行完以上表達式后執(zhí)行完以上表達式后 a=%d, b=%d, c=%dn,a,b,c);【例【例3.5】復合賦值例如?!繌秃腺x值例如。3. 賦值表達式中的類型轉換規(guī)那么賦值表達式中的類型轉換規(guī)那么1將實型數據賦值給整型變量時,舍棄實數的小將實型數據賦值給整型變量時,舍棄實數的小數點部分。如:數點部分。如:int i=12345.6

27、789;i的值為的值為12345。2將整型數據賦值給實型變量時,數值不變,但將整型數據賦值給實型變量時,數值不變,但以浮點數方式存儲到變量中。如:以浮點數方式存儲到變量中。如:float f=765;將將765轉化為轉化為765.0000,再存儲到變量,再存儲到變量f中。中。3將字符型數據賦給整型變量時,字符型占用將字符型數據賦給整型變量時,字符型占用1個字節(jié)即個字節(jié)即8位,將字符數據位放到整型變量的低位,將字符數據位放到整型變量的低8位中。整型變量的高位根據字符數據最高位是位中。整型變量的高位根據字符數據最高位是0或或1相應的補相應的補0或或1。4將將int、short、long型數據賦值給

28、型數據賦值給char型變量時,只型變量時,只將低將低8位放到位放到char型變量中。如:型變量中。如:int i=296; char c;c=i;在在Visual C+6.0中,中,int型數據占用型數據占用4個字節(jié),賦值情個字節(jié),賦值情況如圖況如圖3.1所示:所示: 如:printf(c=%c,c); 輸出:c=A printf(c=%d,c); 輸出:c=65圖圖3.11. 算術運算符算術運算符C言語的根本算術運算符有言語的根本算術運算符有5種,分別是:種,分別是:+兩數相加或取正值運算,如:兩數相加或取正值運算,如:2+3、+5-兩數相減或取負值運算,如:兩數相減或取負值運算,如:6-3

29、、-2*兩數相乘,如:兩數相乘,如:2*3/兩數相除,如:兩數相除,如:6/3值為值為2,7/3值為值為2,當分子分母都為整當分子分母都為整數時結果也為整數,小數部分舍去數時結果也為整數,小數部分舍去%模除運算符或稱取余運算符,模除運算符或稱取余運算符,%兩邊的數須是整數兩邊的數須是整數 如:如:9%5的值為的值為4、6%2的值為的值為02. 算術表達式及運算符的優(yōu)先級算術表達式及運算符的優(yōu)先級用算術運算符及括號將運算對象銜接起來,組成一個符合用算術運算符及括號將運算對象銜接起來,組成一個符合C言語語法的式子,這樣的式子就是算術表達式。運算言語語法的式子,這樣的式子就是算術表達式。運算對象可以

30、是常量、變量、函數,如:對象可以是常量、變量、函數,如:123+a*78%12-65、a+b%c*e+1.5/4都是合法的算術表達式。都是合法的算術表達式。C言語中算術運算符的優(yōu)先級由高到低依次為:言語中算術運算符的優(yōu)先級由高到低依次為:括號括號正、負正、負+、-乘、除、取余乘、除、取余*、/、%加、加、減減+、-運算順序:運算順序:確定符號后,先算乘除后算加減,有括號先算括號,對于同一級確定符號后,先算乘除后算加減,有括號先算括號,對于同一級運算,那么按從左到右的順序進展。運算,那么按從左到右的順序進展。如:如:算術表達式:算術表達式:3+5*6%17+7的計算方法為先算的計算方法為先算3+

31、5為為8,然后,然后8*6為為48,接著計算,接著計算48%17為為14,再計算,再計算14+7值為值為21。3. 各種數值型數據的混合運算各種數值型數據的混合運算在在C言語中可以運用言語中可以運用char、short、int、unsigned、long、float、double、long double這些類型的數據組成表達式進展混合運算,這些類型的數據組成表達式進展混合運算,這就涉及到參與運算的各個操作數詳細應轉換成什么類型,及結這就涉及到參與運算的各個操作數詳細應轉換成什么類型,及結果的類型。果的類型。在處置這樣的表達式時,首先將參與混合運算的不同數據類型的在處置這樣的表達式時,首先將參與

32、混合運算的不同數據類型的數據轉換成一樣的數據類型再進展運算。數據轉換成一樣的數據類型再進展運算。 圖圖3.2中向左的箭頭表示一定會發(fā)生中向左的箭頭表示一定會發(fā)生轉換,如轉換,如char型,型,short型在參與運算型在參與運算時首先轉化成時首先轉化成int型后再計算。向上的型后再計算。向上的縱向箭頭表示數據類型級別的高低,縱向箭頭表示數據類型級別的高低,各種不同類型數據轉換的方向。如各種不同類型數據轉換的方向。如int型與型與float型參與運算,把型參與運算,把int型與型與float型轉化為型轉化為double型再運算,結果為型再運算,結果為double型。型。如:如:123.456789

33、*32767/a,首先把整型,首先把整型32767轉化成轉化成double型型進展運算,進展運算,123.456789*32767結果為結果為double型型4045308.605163,再把再把a轉化為轉化為double型型97.0再進展除法運算,再進展除法運算,4045308.605163/97.0結果為結果為41704.212424。圖圖3.2自增自增+運算符使變量增運算符使變量增1,自減,自減-運算符使變量減運算符使變量減1。如:如:i+,+i,i-,-i類似類似i=i+1;i=i-1;但又不同。;但又不同。以自增為例:以自增為例:i+;是先獲得;是先獲得i的值后再使的值后再使i自增自

34、增1,即表達式,即表達式i+的值還是的值還是i的值。的值。+i;是先使;是先使i自增自增1后再獲得后再獲得i的值,即表達式的值,即表達式+i的值為的值為i自增自增1后的值。后的值。i-與與-i同樣如此。同樣如此。如:如:int i=1;j=i+ ;/*運用變量之后運用變量之后i的值自增的值自增1變?yōu)樽優(yōu)?,此時,此時j的值為的值為1*/j=+i ;/*運用變量之前運用變量之前i的值自增的值自增1變?yōu)樽優(yōu)?,此時,此時j的值為的值為2*/自增與自減運算符應留意以下幾點:自增與自減運算符應留意以下幾點:1自增與自減只能是對變量進展操作,不能對常量和表達式進展自自增與自減只能是對變量進展操作,不能對

35、常量和表達式進展自增自減,如:增自減,如: 8-、x*y+是錯誤的。是錯誤的。2自增自減的結合方向是由自增自減的結合方向是由“自右到左,與算術表達式的結合順序自右到左,與算術表達式的結合順序不同。不同。3一個變量在一個表達式中出現兩次或兩次以上,不宜運用自增或一個變量在一個表達式中出現兩次或兩次以上,不宜運用自增或自減運算。否那么在不同的編譯器下執(zhí)行的順序不同易出現結果不同自減運算。否那么在不同的編譯器下執(zhí)行的順序不同易出現結果不同的情況。的情況。關系運算實踐上就是比較運算,是將兩個值進展比較,判別比較的關系運算實踐上就是比較運算,是將兩個值進展比較,判別比較的結果能否符合給定的條件,如滿足表

36、達式結果為結果能否符合給定的條件,如滿足表達式結果為“真,不滿足真,不滿足表達式結果為表達式結果為“假。假。1關系運算符關系運算符大于、大于、=大于等于、大于等于、=小于等于、小于等于、 = =等于、等于、!=不等不等留意:關系表達式等于號留意:關系表達式等于號“= =不同于不同于“=,后者是賦值運算符。,后者是賦值運算符。其中前四種關系運算符其中前四種關系運算符、=、9、a= =97、56(a b)、a0這這5個關系表達式的值分別為:個關系表達式的值分別為:0、1、1、0、1又如:又如:x=3,y=5,z=8,那么:,那么:關系表達式:關系表達式:xy的值為的值為0,zyx的值為的值為0因因

37、其等價于其等價于zyx,zy的值為的值為1,同時,同時1x的的值為值為0,故表達式的為,故表達式的為0,z= =x+y的值為的值為1因算術運算符因算術運算符+的優(yōu)先級的高于關系運算符的優(yōu)先級的高于關系運算符= =,所以此表達式等價于,所以此表達式等價于z= =x+y,x+y的的值值8與與z的值相等,故表達式的值為的值相等,故表達式的值為1。關系運算處理較簡單的條件判別,對于較復雜的判別可關系運算處理較簡單的條件判別,對于較復雜的判別可以用邏輯運算來完成。以用邏輯運算來完成。1邏輯運算符邏輯運算符&邏輯與、邏輯與、|邏輯或、!邏輯非邏輯或、!邏輯非其中前兩種邏輯運算符其中前兩種邏輯運算符

38、&、|是雙目運算符,后是雙目運算符,后面的邏輯運算符面的邏輯運算符!是單目運算符。邏輯運算符在一是單目運算符。邏輯運算符在一切運算符中優(yōu)先級如圖切運算符中優(yōu)先級如圖3.3。邏輯運算符的優(yōu)先級:邏輯運算符的優(yōu)先級:圖圖3.32邏輯表達式邏輯表達式用邏輯運算符將符合用邏輯運算符將符合C言語的表達式銜接起來言語的表達式銜接起來的式子稱為邏輯表達式。邏輯表達式的結果的式子稱為邏輯表達式。邏輯表達式的結果亦為亦為“真或真或“假,在假,在C言語中邏輯表達式的言語中邏輯表達式的結果以數值結果以數值1代表代表“真,數值真,數值0代表代表“假。假。“:?為條件運算符。條件運算符有:?為條件運算符。條件運

39、算符有3個操個操作數,是作數,是C言語中獨一的三目運算符。由言語中獨一的三目運算符。由其銜接的表達式為條件表達式。格式如下:其銜接的表達式為條件表達式。格式如下:?:其中:其中:表達式表達式1:是一個關系表達式或邏輯表達式,:是一個關系表達式或邏輯表達式,用作判別條件。用作判別條件。表達式表達式2:是一個合法的:是一個合法的C言語表達式。言語表達式。表達式表達式3:也是一個合法的:也是一個合法的C言語表達式。言語表達式。C言語中可用逗號言語中可用逗號“,運算符把合法的表達式銜接起來構成逗,運算符把合法的表達式銜接起來構成逗號表達式。號表達式。格式為:格式為:表達式表達式1,表達式,表達式2,表

40、達式表達式n闡明:闡明:1逗號運算符是逗號運算符是C言語中優(yōu)先級最低的運算符。言語中優(yōu)先級最低的運算符。2結合方向是結合方向是“從左至右,即先計算表達式從左至右,即先計算表達式1,再計算表達式,再計算表達式2最后計算表達式最后計算表達式n,逗號表達式的值為最右側表達式即表,逗號表達式的值為最右側表達式即表達式達式n的值。的值。#includemain()int x=2, y=3,z=5,a=1,b=2,c=3;a=b+,c+; printf(a=%d,b=%d,c=%dn,a,b,c);x+=(y+,z*=y);printf(x=%d,y=%d,z=%dn,x,y,z);【例【例3.6】逗】逗號表達式運號表達式運用例如。用例如。求字節(jié)運算符用來計算各種數據類型的數據占用的字節(jié)數,求字節(jié)運算符用來計算各種數據類型的數據占用的字節(jié)數,用用sizeof()來實現。來實現。運用格式:運用格式:sizeof(數據類型數據類型);sizeof(變量變量);如:在如:在Visual C+6.0中中sizeof(i

溫馨提示

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

最新文檔

評論

0/150

提交評論