-數(shù)據(jù)類型與運(yùn)算規(guī)則_第1頁
-數(shù)據(jù)類型與運(yùn)算規(guī)則_第2頁
-數(shù)據(jù)類型與運(yùn)算規(guī)則_第3頁
-數(shù)據(jù)類型與運(yùn)算規(guī)則_第4頁
-數(shù)據(jù)類型與運(yùn)算規(guī)則_第5頁
已閱讀5頁,還剩72頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、第三章第三章 數(shù)據(jù)類型與運(yùn)算規(guī)則數(shù)據(jù)類型與運(yùn)算規(guī)則3.1 3.1 數(shù)據(jù)與數(shù)據(jù)類型數(shù)據(jù)與數(shù)據(jù)類型3.2 C3.2 C語言的基本數(shù)據(jù)類型及其表示語言的基本數(shù)據(jù)類型及其表示3.3 3.3 算術(shù)運(yùn)算與賦值運(yùn)算算術(shù)運(yùn)算與賦值運(yùn)算3.4 3.4 關(guān)系運(yùn)算與邏輯運(yùn)算關(guān)系運(yùn)算與邏輯運(yùn)算3.5 3.5 位運(yùn)算位運(yùn)算3.6 3.6 其他運(yùn)算其他運(yùn)算3.7 3.7 混合運(yùn)算及數(shù)據(jù)類型轉(zhuǎn)換混合運(yùn)算及數(shù)據(jù)類型轉(zhuǎn)換如何描述上述表達(dá)式中的數(shù)據(jù)、運(yùn)算符號和如何描述上述表達(dá)式中的數(shù)據(jù)、運(yùn)算符號和運(yùn)算過程?運(yùn)算過程?數(shù)據(jù):是程序加工、處理的對象,也是加工的結(jié)數(shù)據(jù):是程序加工、處理的對象,也是加工的結(jié) 果;果;數(shù)據(jù)類型:具有同樣性

2、質(zhì)(能夠作同樣的操作,采數(shù)據(jù)類型:具有同樣性質(zhì)(能夠作同樣的操作,采 用同樣的編碼方式等)的數(shù)據(jù)集合稱為數(shù)據(jù)用同樣的編碼方式等)的數(shù)據(jù)集合稱為數(shù)據(jù) 類型;類型;每種數(shù)據(jù)類型都有固定的表示方式,也就確定了可每種數(shù)據(jù)類型都有固定的表示方式,也就確定了可能表示的數(shù)據(jù)范圍和在內(nèi)存中的存放形式;能表示的數(shù)據(jù)范圍和在內(nèi)存中的存放形式;C C語言為每個(gè)類型定義了一個(gè)標(biāo)識符,稱為類型語言為每個(gè)類型定義了一個(gè)標(biāo)識符,稱為類型名,如整數(shù)型用名,如整數(shù)型用intint表示;表示;3.2 C3.2 C語言的基本數(shù)據(jù)類型及其表示語言的基本數(shù)據(jù)類型及其表示常量與變量常量與變量整型類型及其表示整型類型及其表示實(shí)型類型及其表

3、示實(shí)型類型及其表示字符型類型及其表示字符型類型及其表示指針型類型及其表示指針型類型及其表示變量的初始化變量的初始化l常量常量: :在程序運(yùn)行過程中,其值不能改變的量。在程序運(yùn)行過程中,其值不能改變的量。如如: 3: 3,4.3,-1,4.3,-1,A A, , “ABAB”;l符號常量:符號常量:用標(biāo)識符來表示常量;用標(biāo)識符來表示常量;使用宏定義命令對符號常量進(jìn)行定義;使用宏定義命令對符號常量進(jìn)行定義;定義:定義: #define #define 標(biāo)識符標(biāo)識符 常量常量例如:例如: #define PI 3.1415926#define PI 3.1415926l變量: 在程序運(yùn)行過程中,其值

4、能改變的量。在程序運(yùn)行過程中,其值能改變的量。對變量的基本操作:對變量的基本操作:賦值:賦值:取值:取值: 變量名按標(biāo)識符規(guī)則組成變量名按標(biāo)識符規(guī)則組成: : 字母或下劃線打頭的字母、數(shù)字或字母或下劃線打頭的字母、數(shù)字或 下劃線序列;下劃線序列; ab ab,b3b3,c_7, _max,Intc_7, _max,Int 7t, 99r 7t, 99r,int,int,對變量的定義:對變量的定義:類型說明符類型說明符 變量名表;變量名表;例如:例如: int a,b,c;int a,b,c;變量必須先定義后使用;變量必須先定義后使用;變量的變量的3 3個(gè)屬性個(gè)屬性: :變量地址;變量地址;變量

5、內(nèi)容;變量內(nèi)容;變量名;變量名;整型常量:整型常量:十進(jìn)制整型常量:十進(jìn)制整型常量:123123,8 8,-10-10等;等;八進(jìn)制整型常量:八進(jìn)制整型常量:以以數(shù)字?jǐn)?shù)字0 0 打頭的數(shù)字序列打頭的數(shù)字序列(0-7(0-7)如如 056056, 017017, 078078;十六進(jìn)制整型常量:十六進(jìn)制整型常量:以以數(shù)字?jǐn)?shù)字0 0和字母和字母x x打頭的序列(打頭的序列(0 - 90 - 9,a - fa - f)如如 0 x1230 x123,0 x3A 0 x3A ,0 x9g0 x9g;長整型常量在常量之后加上字母長整型常量在常量之后加上字母“l(fā) l”或或“L L”, ,如如123L123

6、L,40000L40000L等;等;l整型變量:整型變量:名稱名稱 占內(nèi)存字節(jié)占內(nèi)存字節(jié) 表示范圍表示范圍 說明方法說明方法基本整型基本整型 2 -22 -215 15 2 21515-1 int a,b;-1 int a,b;短整型短整型 2 2 同上同上 short a,b;short a,b;無符號整型無符號整型 2 0 2 0 65535 unsigned a,b; 65535 unsigned a,b;長整型長整型 4 -24 -23131-2-231 31 1 long a,b;1 long a,b;無符號長整型無符號長整型 4 0 4 0 2 232 32 1 unsigned

7、long a;1 unsigned long a; l整型變量:整型變量:以關(guān)鍵字以關(guān)鍵字intint為基本類型說明符;為基本類型說明符;配合四個(gè)類型修飾符,用來改變和擴(kuò)充基本類型的含義;配合四個(gè)類型修飾符,用來改變和擴(kuò)充基本類型的含義;l整型數(shù)據(jù)在使用中應(yīng)注意的問題:整型數(shù)據(jù)在使用中應(yīng)注意的問題:變量要先定義后使用;變量要先定義后使用;數(shù)據(jù)溢出;數(shù)據(jù)溢出; 若若 int aint a,b b;unsigned cunsigned c;long d long d ; a=123a=123; d= -105000d= -105000; b=40000b=40000; c= 105000c= 10

8、5000;常量與變量的類型要匹配;常量與變量的類型要匹配;實(shí)型常量:實(shí)型常量:小數(shù)形式:至少有一個(gè)小數(shù)點(diǎn)和一個(gè)數(shù)字,小數(shù)形式:至少有一個(gè)小數(shù)點(diǎn)和一個(gè)數(shù)字, 如如12.312.3,87.487.4,-0.25-0.25等;等;指數(shù)形式:由十進(jìn)制小數(shù)加上指數(shù)部分組成,指數(shù)形式:由十進(jìn)制小數(shù)加上指數(shù)部分組成, 形式為:十進(jìn)制小數(shù)形式為:十進(jìn)制小數(shù)e(E)e(E)指數(shù)指數(shù)2.5e3 56E8 66e32.5e3 56E8 66e3e2 1.2e 3e1.2e2 1.2e 3e1.2實(shí)型變量:實(shí)型變量:名稱名稱 存儲字節(jié)存儲字節(jié) 表示范圍表示范圍 有效位有效位 說明方法說明方法單精度單精度 4 -104

9、 -1038 38 - 10- 1038 38 7 float a;7 float a;雙精度雙精度 8 -108 -10308308 - 10 - 10308 308 16 double a;16 double a;長雙精度長雙精度 16 -1016 -1049324932 10 104932 4932 19 long double a;19 long double a;0 11111110 111111111111111111111111-2-23 127-1=1272 2127 127 10103838163.2 C語言的基本數(shù)據(jù)類型其中,小數(shù)部分一般都采用規(guī)格化的數(shù)據(jù)形其中,小數(shù)部分一

10、般都采用規(guī)格化的數(shù)據(jù)形式,即:小數(shù)點(diǎn)放在第一個(gè)有效數(shù)字前面,式,即:小數(shù)點(diǎn)放在第一個(gè)有效數(shù)字前面,使小數(shù)部分放小于使小數(shù)部分放小于1的純小數(shù)。的純小數(shù)。單精度實(shí)數(shù)的精度取決于小數(shù)部分的單精度實(shí)數(shù)的精度取決于小數(shù)部分的23位二位二進(jìn)制數(shù)位所能表達(dá)的數(shù)值位數(shù),將其轉(zhuǎn)換為進(jìn)制數(shù)位所能表達(dá)的數(shù)值位數(shù),將其轉(zhuǎn)換為十進(jìn)制,最多可表示十進(jìn)制,最多可表示7位十進(jìn)制數(shù)字,所以單位十進(jìn)制數(shù)字,所以單精度實(shí)數(shù)的有效位是精度實(shí)數(shù)的有效位是7位。位。雙精度型用于擴(kuò)大存儲位數(shù),目的是增加實(shí)雙精度型用于擴(kuò)大存儲位數(shù),目的是增加實(shí)數(shù)的長度,減少累積誤差,改善計(jì)算精度數(shù)的長度,減少累積誤差,改善計(jì)算精度l實(shí)型變量:實(shí)型變量:以

11、三種關(guān)鍵字定義實(shí)型變量;以三種關(guān)鍵字定義實(shí)型變量;floatfloat 單精度型單精度型doubledouble 雙精度型雙精度型long doublelong double 長雙精度型長雙精度型字符型類型及其表示字符型類型及其表示l字符型常量:字符型常量:普通字符:普通字符:單引號單引號括起來的單個(gè)字符,括起來的單個(gè)字符, 如如a a, ,B B等;等;轉(zhuǎn)義字符:以轉(zhuǎn)義標(biāo)識符轉(zhuǎn)義字符:以轉(zhuǎn)義標(biāo)識符“ ”開始的字符序列,開始的字符序列,例如:例如:n(n(換行換行),t(),t(跳格跳格),b(),b(退格退格),().),(). dddddd(1(1到到3 3位位8 8進(jìn)制數(shù)表示的字符進(jìn)制數(shù)

12、表示的字符) )xxdd(1dd(1到到2 2位位1616進(jìn)制數(shù)表示的字符進(jìn)制數(shù)表示的字符) )字符型類型及其表示字符型類型及其表示轉(zhuǎn)義字符轉(zhuǎn)義字符:是特殊性質(zhì)的字符常量,:是特殊性質(zhì)的字符常量,用于表示常用的但卻難以用一般形用于表示常用的但卻難以用一般形式表示的不可顯示字符;式表示的不可顯示字符;轉(zhuǎn)義字符的表示轉(zhuǎn)義字符的表示:用一個(gè)轉(zhuǎn)義標(biāo)識:用一個(gè)轉(zhuǎn)義標(biāo)識符符“”開頭,后面是需要的轉(zhuǎn)義字開頭,后面是需要的轉(zhuǎn)義字符。常用的轉(zhuǎn)義字符序列的字符常符。常用的轉(zhuǎn)義字符序列的字符常量見表量見表:20字符型類型及其表示字符型類型及其表示轉(zhuǎn)義字符轉(zhuǎn)義字符“n”中的中的n已不代表字符常量已不代表字符常量“n”

13、,n轉(zhuǎn)義成換行。轉(zhuǎn)義成換行。轉(zhuǎn)義字符轉(zhuǎn)義字符“015”是是“ddd”形式的轉(zhuǎn)義字形式的轉(zhuǎn)義字符,其中符,其中“015”是八進(jìn)制字符串,它表示了是八進(jìn)制字符串,它表示了ASCII碼表中編碼為十進(jìn)制碼表中編碼為十進(jìn)制13的字符,也就的字符,也就是回車。是回車。轉(zhuǎn)義字符轉(zhuǎn)義字符“x1f”是是“xdd”形式的轉(zhuǎn)義字符,形式的轉(zhuǎn)義字符,其中其中“1f”是十六進(jìn)制字符串,它表示了是十六進(jìn)制字符串,它表示了ASCII碼表中編碼為十進(jìn)制碼表中編碼為十進(jìn)制31的字符,也就的字符,也就是是。字符型類型及其表示字符型類型及其表示l字符串常量:字符串常量:雙引號括起的一串字符,雙引號括起的一串字符,例如例如“Chin

14、aChina”, “BeijingBeijing”;系統(tǒng)對字符串尾自動加系統(tǒng)對字符串尾自動加00作為字符串終結(jié)符;作為字符串終結(jié)符; a a與與“a a”的區(qū)別:的區(qū)別:字符常量字符常量 a a, , 占占1 1個(gè)字節(jié)個(gè)字節(jié)字符串常量字符串常量 “a a”, , 占占2 2個(gè)字節(jié)個(gè)字節(jié)字符型類型及其表示字符型類型及其表示字符型變量:只存放一個(gè)字符的變量。只存放一個(gè)字符的變量。用用charchar進(jìn)行說明進(jìn)行說明; ;一個(gè)字符型變量可存放一個(gè)字符,占用一個(gè)字符型變量可存放一個(gè)字符,占用一個(gè)字節(jié)一個(gè)字節(jié), ,存放字符的存放字符的ASCIIASCII碼;碼; char a;int b;char a;

15、int b; a= a=A A;b=a+32; printf(;b=a+32; printf(“%c,%d%c,%d”,b,a);,b,a); 輸出輸出: a,65: a,65字符型數(shù)據(jù)與整型數(shù)據(jù)可以通用字符型數(shù)據(jù)與整型數(shù)據(jù)可以通用指針型類型及其表示指針指針是一種數(shù)據(jù)類型,是一個(gè)變量在內(nèi)存中所是一種數(shù)據(jù)類型,是一個(gè)變量在內(nèi)存中所對應(yīng)存儲單元的地址;對應(yīng)存儲單元的地址;指針變量指針變量是存放地址的變量;是存放地址的變量;指針就是地址,該地址就是某個(gè)變量在內(nèi)存單指針就是地址,該地址就是某個(gè)變量在內(nèi)存單元中對應(yīng)的存放位置;元中對應(yīng)的存放位置;指針型類型及其表示變量的指針與變量的區(qū)別:變量的指針與變量

16、的區(qū)別:變量變量c c的指針與變量的指針與變量c c的區(qū)別是:的區(qū)別是:c c的值的值是是A A,它是內(nèi)存,它是內(nèi)存單元單元10001000的內(nèi)容;的內(nèi)容;而而c c的指針是存放變的指針是存放變量量c c的地址的地址10001000,通,通過該指針可以間接過該指針可以間接取得變量取得變量c c的值;的值;變量變量c100010012000A1000變量變量pc (指針變量指針變量)指針型類型及其表示l指針變量的說明:指針變量的說明:類型說明符類型說明符 * *變量名變量名例如例如 int a,int a,* *p p;“* *”號表示它后面的變量名為指針類型,稱為指針變量;號表示它后面的變量名

17、為指針類型,稱為指針變量;類型說明符表示指針變量的類型,并非指針變量自身的類類型說明符表示指針變量的類型,并非指針變量自身的類型,而是指針變量型,而是指針變量所指對象的類型所指對象的類型;指針可以指向任何類型的對象指針可以指向任何類型的對象,包括指針;,包括指針;l指針變量的使用:指針變量的使用:& &:取地址運(yùn)算符,:取地址運(yùn)算符,&a &a 表示取表示取a a的地址;若的地址;若p=&a;p=&a;則指針變則指針變量量p p中存放中存放a a的地址,稱的地址,稱p p指向指向a a;* *:指針內(nèi)容運(yùn)算符,:指針內(nèi)容運(yùn)算符,* *p p表示取

18、指針表示取指針p p所指內(nèi)存單元的內(nèi)容;所指內(nèi)存單元的內(nèi)容;變量的初始化先定義,再賦值;先定義,再賦值;int x,y;int x,y;x = 10, y = 30;x = 10, y = 30;定義變量的同時(shí)對變量賦初值;定義變量的同時(shí)對變量賦初值;int x = 10,y = 30;int x = 10,y = 30;不初始化會怎樣?不初始化會怎樣?27C語言的基本數(shù)據(jù)類型本節(jié)結(jié)構(gòu)本節(jié)結(jié)構(gòu)常量常量字符常量字符常量數(shù)值常量數(shù)值常量計(jì)算機(jī)計(jì)算機(jī)語言表語言表示數(shù)據(jù)示數(shù)據(jù)的基本的基本形式形式實(shí)型常量實(shí)型常量整型常量整型常量字符常量字符常量字符串常量字符串常量變量變量字符變量字符變量數(shù)值變量數(shù)值變量

19、實(shí)型變量實(shí)型變量整型變量整型變量指針變量指針變量整型整型實(shí)型實(shí)型字符型字符型計(jì)算機(jī)語言表示數(shù)據(jù)的基本形式計(jì)算機(jī)語言表示數(shù)據(jù)的基本形式C程序中,常量直接以自身的存在形式體程序中,常量直接以自身的存在形式體現(xiàn)其值和類型:現(xiàn)其值和類型:12,0 x12,0 x12L,12.,.12,2e3,1.2f,2e3L變量以標(biāo)識符的形式來表示類型:變量以標(biāo)識符的形式來表示類型:int a; char c; double x, y;常量不占內(nèi)存,程序運(yùn)行時(shí)它作為操作常量不占內(nèi)存,程序運(yùn)行時(shí)它作為操作對象直接出現(xiàn)在運(yùn)算器的各種寄存器中;對象直接出現(xiàn)在運(yùn)算器的各種寄存器中;3.3 3.3 算術(shù)運(yùn)算與賦值運(yùn)算算術(shù)運(yùn)算

20、與賦值運(yùn)算lC C語言中的運(yùn)算規(guī)則語言中的運(yùn)算規(guī)則l算術(shù)運(yùn)算符與算術(shù)表達(dá)式算術(shù)運(yùn)算符與算術(shù)表達(dá)式l自增、自減運(yùn)算自增、自減運(yùn)算l賦值運(yùn)算符和賦值表達(dá)式賦值運(yùn)算符和賦值表達(dá)式l組合賦值運(yùn)算符和組合賦值表達(dá)式組合賦值運(yùn)算符和組合賦值表達(dá)式C C語言中的運(yùn)算規(guī)則語言中的運(yùn)算規(guī)則運(yùn)算符按照其在表達(dá)式中與運(yùn)算對象的關(guān)系運(yùn)算符按照其在表達(dá)式中與運(yùn)算對象的關(guān)系可分為:可分為:單目運(yùn)算:連接一個(gè)運(yùn)算對象;單目運(yùn)算:連接一個(gè)運(yùn)算對象;雙目運(yùn)算:連接兩個(gè)運(yùn)算對象;雙目運(yùn)算:連接兩個(gè)運(yùn)算對象;三目運(yùn)算:連接三個(gè)運(yùn)算對象;三目運(yùn)算:連接三個(gè)運(yùn)算對象;運(yùn)算符按照其在表達(dá)式中所起的作用可以分運(yùn)算符按照其在表達(dá)式中所起的作

21、用可以分為:為:算術(shù)運(yùn)算符:算術(shù)運(yùn)算符: + +,- -,自增自減運(yùn)算符:自增自減運(yùn)算符:+,-關(guān)系運(yùn)算符:關(guān)系運(yùn)算符:, , b)?a:bmax = (ab)?a:b;按照運(yùn)算符在表達(dá)式中的作用,表達(dá)式可分為:按照運(yùn)算符在表達(dá)式中的作用,表達(dá)式可分為:算術(shù)表達(dá)式算術(shù)表達(dá)式 如如 a+b;a+b;關(guān)系表達(dá)式關(guān)系表達(dá)式 如如 a!=b; ca;a!=b; ca;賦值表達(dá)式賦值表達(dá)式 如如 a = 3; a = 3; C C語言中的運(yùn)算規(guī)則語言中的運(yùn)算規(guī)則l優(yōu)先級:優(yōu)先級:同一個(gè)表達(dá)式中不同運(yùn)算符進(jìn)行計(jì)算時(shí)的先后次序;同一個(gè)表達(dá)式中不同運(yùn)算符進(jìn)行計(jì)算時(shí)的先后次序;當(dāng)變量的兩邊均有運(yùn)算符時(shí),其當(dāng)變量

22、的兩邊均有運(yùn)算符時(shí),其優(yōu)先級高優(yōu)先級高的先運(yùn)算的先運(yùn)算. .a + b a + b d dl結(jié)合性:結(jié)合性: 是指同一個(gè)表達(dá)式中相同優(yōu)先級的多個(gè)運(yùn)算應(yīng)遵循的運(yùn)算是指同一個(gè)表達(dá)式中相同優(yōu)先級的多個(gè)運(yùn)算應(yīng)遵循的運(yùn)算 順序;順序;左結(jié)合左結(jié)合從左到右(除從左到右(除“= =”外的雙目運(yùn)算符)外的雙目運(yùn)算符) a + b a + b c c (a + b) (a + b) c c 右結(jié)合右結(jié)合從右到左(單目或三目運(yùn)算符)從右到左(單目或三目運(yùn)算符) -k+ -k+ -(k+) -(k+)C C語言允許的算術(shù)運(yùn)算符包括:語言允許的算術(shù)運(yùn)算符包括: 加法運(yùn)算或取正值運(yùn)算,雙目、單目運(yùn)算符,作為加法運(yùn)算或取

23、正值運(yùn)算,雙目、單目運(yùn)算符,作為 單目運(yùn)算符時(shí)優(yōu)先級高于雙目運(yùn)算符,如單目運(yùn)算符時(shí)優(yōu)先級高于雙目運(yùn)算符,如 a+b;+5;a+b;+5; 減法運(yùn)算或取負(fù)值運(yùn)算,雙目、單目運(yùn)算符,作為減法運(yùn)算或取負(fù)值運(yùn)算,雙目、單目運(yùn)算符,作為 單目運(yùn)算符時(shí)優(yōu)先級高于雙目運(yùn)算符,如單目運(yùn)算符時(shí)優(yōu)先級高于雙目運(yùn)算符,如 a-b;-5;a-b;-5;* * 乘法運(yùn)算,雙目運(yùn)算符,如乘法運(yùn)算,雙目運(yùn)算符,如 a a* *b;b;/ / 除法運(yùn)算,雙目運(yùn)算符,如除法運(yùn)算,雙目運(yùn)算符,如a/b; 13/4=?a/b; 13/4=?% % 模運(yùn)算(求余運(yùn)算),雙目運(yùn)算符,要求兩個(gè)運(yùn)算模運(yùn)算(求余運(yùn)算),雙目運(yùn)算符,要求兩個(gè)

24、運(yùn)算 對象都為整型,例如對象都為整型,例如 5%7= ?, 7%5= ?, 8%3.2 =?5%7= ?, 7%5= ?, 8%3.2 =?52算術(shù)運(yùn)算符的優(yōu)先級及結(jié)合性為:算術(shù)運(yùn)算符的優(yōu)先級及結(jié)合性為:算術(shù)表達(dá)式:算術(shù)表達(dá)式:由算術(shù)運(yùn)算符,常數(shù),變量,函數(shù)和括號組成,由算術(shù)運(yùn)算符,常數(shù),變量,函數(shù)和括號組成,其基本形式與數(shù)學(xué)上的算術(shù)表達(dá)式類似其基本形式與數(shù)學(xué)上的算術(shù)表達(dá)式類似. .例如例如 12.45-4312.45-43* *5 x/(67-(12+y)5 x/(67-(12+y)* *a)a)雙目運(yùn)算符兩側(cè)運(yùn)算對象的類型如果不一致,系雙目運(yùn)算符兩側(cè)運(yùn)算對象的類型如果不一致,系 統(tǒng)將自動按

25、轉(zhuǎn)換規(guī)律進(jìn)行轉(zhuǎn)換;統(tǒng)將自動按轉(zhuǎn)換規(guī)律進(jìn)行轉(zhuǎn)換;使用括號可以改變表達(dá)式的運(yùn)算順序;使用括號可以改變表達(dá)式的運(yùn)算順序;函數(shù)調(diào)用也可作為算術(shù)表達(dá)式中的運(yùn)算對象;函數(shù)調(diào)用也可作為算術(shù)表達(dá)式中的運(yùn)算對象;自增自增“”、自減、自減“”運(yùn)算:運(yùn)算:單目運(yùn)算,其作用是使單目運(yùn)算,其作用是使變量變量的值增的值增1 1或減或減1 1;優(yōu)先級高于所有雙目運(yùn)算;優(yōu)先級高于所有雙目運(yùn)算;應(yīng)用形式:應(yīng)用形式:前綴形式:前綴形式:+i; +i; i; i; 表示變量在使用前自動加表示變量在使用前自動加1 1或減或減1 1;后綴形式:后綴形式:i+;ii+;i; ; 表示變量在使用后自動加表示變量在使用后自動加1 1或減或減

26、1 1;+、 運(yùn)算運(yùn)算只能作用于變量只能作用于變量,不能用于表達(dá)式或常量;,不能用于表達(dá)式或常量;用于用于+、 運(yùn)算的變量只能是整型運(yùn)算的變量只能是整型, ,字符型和指針變量;字符型和指針變量;前綴形式與后綴形式的意義不同;前綴形式與后綴形式的意義不同;+、 的結(jié)合性是自右向左的;的結(jié)合性是自右向左的; 若若 int a=5,b;int a=5,b; b=(a+)+(a+); b= a=b=(a+)+(a+); b= a= b=(+a)+(+a); b= a= b=(+a)+(+a); b= a= b=( b=( a)+(a-); b= a=a)+(a-); b= a= 10714783右結(jié)合

27、右結(jié)合-k+ -k+ -(k+) -(k+),能否用于,能否用于floatfloat型數(shù)據(jù)?型數(shù)據(jù)?,用于,用于floatfloat型數(shù)據(jù)時(shí)編譯沒有錯(cuò)誤型數(shù)據(jù)時(shí)編譯沒有錯(cuò)誤結(jié)果不確定結(jié)果不確定關(guān)于,關(guān)于,在一行語句中最好只出現(xiàn)一次在一行語句中最好只出現(xiàn)一次+,-+,-,多了可讀性會很,多了可讀性會很差;差;C C語言中允許編譯程序自由重排表達(dá)式的順序,以產(chǎn)生語言中允許編譯程序自由重排表達(dá)式的順序,以產(chǎn)生最優(yōu)代碼,因此語句過于復(fù)雜時(shí),采用不同的編譯程序最優(yōu)代碼,因此語句過于復(fù)雜時(shí),采用不同的編譯程序編譯時(shí),可能會產(chǎn)生不同的運(yùn)算結(jié)果。編譯時(shí),可能會產(chǎn)生不同的運(yùn)算結(jié)果。賦值運(yùn)算符:賦值運(yùn)算符:“”,

28、其功能是計(jì)算賦值運(yùn)算符其功能是計(jì)算賦值運(yùn)算符“”右邊右邊表達(dá)式的值,并將計(jì)算結(jié)果賦給表達(dá)式的值,并將計(jì)算結(jié)果賦給“”左邊左邊的變量;的變量;若若int k,i,j,aint k,i,j,a;a=5;a=5;k=3+(a=a+2)k=3+(a=a+2);j=i=aj=i=a* *0.7;0.7;則則 a= k= i= j=a= k= i= j= 71044賦值表達(dá)式:賦值表達(dá)式:由賦值運(yùn)算符將一個(gè)變量和一個(gè)表達(dá)式連接起來的式由賦值運(yùn)算符將一個(gè)變量和一個(gè)表達(dá)式連接起來的式子;子;形式:形式:變量名變量名 表達(dá)式表達(dá)式; 賦值表達(dá)式的值就是賦值運(yùn)算符左邊變量的值;賦值表達(dá)式的值就是賦值運(yùn)算符左邊變量

29、的值;類型轉(zhuǎn)換:類型轉(zhuǎn)換:賦值運(yùn)算符兩邊的數(shù)據(jù)類型不一致時(shí)需要進(jìn)類型轉(zhuǎn)賦值運(yùn)算符兩邊的數(shù)據(jù)類型不一致時(shí)需要進(jìn)類型轉(zhuǎn)換;換;轉(zhuǎn)換原則是以轉(zhuǎn)換原則是以“= =”左邊的變量的類型為準(zhǔn);左邊的變量的類型為準(zhǔn);組合賦值運(yùn)算符:組合賦值運(yùn)算符:在賦值運(yùn)算符在賦值運(yùn)算符”= =”之前加上其他運(yùn)算符可以構(gòu)成組合運(yùn)之前加上其他運(yùn)算符可以構(gòu)成組合運(yùn)算符,用于完成賦值組合運(yùn)算操作。算符,用于完成賦值組合運(yùn)算操作。形式形式: : 運(yùn)算符運(yùn)算符 ;運(yùn)算符可以是運(yùn)算符可以是 、* *、/ /、% %等;等;組成的組合賦值運(yùn)算符為、組成的組合賦值運(yùn)算符為、* *、/=/=、等;等;組合賦值表達(dá)式:組合賦值表達(dá)式:由組合賦值

30、運(yùn)算符將一個(gè)變量和一個(gè)表達(dá)式連接起來的由組合賦值運(yùn)算符將一個(gè)變量和一個(gè)表達(dá)式連接起來的式子成為組合賦值表達(dá)式。式子成為組合賦值表達(dá)式。形式:形式: 變量名變量名 組合賦值運(yùn)算符組合賦值運(yùn)算符 表達(dá)式;表達(dá)式;其功能等價(jià)于:其功能等價(jià)于: 變量名變量名 變量名變量名 運(yùn)算符運(yùn)算符 表達(dá)式表達(dá)式a+=b a+=b a=a+b a=a+b a-=b a-=b a=a-b a=a-ba a* *=b =b a=a a=a* *b b a/=b a/=b a=a/b a=a/b.若若 int a=1,b=2,c=3; int a=1,b=2,c=3; 則則a+=b-=c a+=b-=c a=a+(b-=

31、c) a=a+(b-=c) a=a+(b=b-c) a=a+(b=b-c) a=a+( a=a+(b=-1b=-1) ) a=1+(-1) a=1+(-1)所以所以 a=0 b=-1a=0 b=-1關(guān)系運(yùn)算符與關(guān)系表達(dá)式關(guān)系運(yùn)算符與關(guān)系表達(dá)式邏輯運(yùn)算符與邏輯表達(dá)式邏輯運(yùn)算符與邏輯表達(dá)式條件運(yùn)算符與條件表達(dá)式條件運(yùn)算符與條件表達(dá)式關(guān)系運(yùn)算符:關(guān)系運(yùn)算符:包括包括 、 =、=、!=!=、= = 六種六種, ,為雙目運(yùn)算符,結(jié)為雙目運(yùn)算符,結(jié)合性為從左到右結(jié)合;合性為從左到右結(jié)合; 其作用是確定兩個(gè)數(shù)據(jù)之間是否存在某種關(guān)系;其作用是確定兩個(gè)數(shù)據(jù)之間是否存在某種關(guān)系;優(yōu)先級分兩級,且低于算術(shù)運(yùn)算符;優(yōu)

32、先級分兩級,且低于算術(shù)運(yùn)算符;高級:高級: 、=低級:、!低級:、!關(guān)系表達(dá)式:關(guān)系表達(dá)式:形式:形式: 表達(dá)式表達(dá)式1 1 關(guān)系運(yùn)算符關(guān)系運(yùn)算符 表達(dá)式表達(dá)式2 2關(guān)系表達(dá)式的運(yùn)算結(jié)果為邏輯值:關(guān)系成立,邏輯值為關(guān)系表達(dá)式的運(yùn)算結(jié)果為邏輯值:關(guān)系成立,邏輯值為“真真”,用,用1 1表示;否則邏輯值為表示;否則邏輯值為“假假”,用,用0 0表示;表示; a a!=!=b b的值為的值為: : 233+82 233+82的值為的值為: : 0 x10 0 x10 的值為的值為: : 1或或0要表示數(shù)學(xué)中的要表示數(shù)學(xué)中的0 x0&x & |,! & |,邏輯運(yùn)算優(yōu)先級低于關(guān)

33、系運(yùn)算邏輯運(yùn)算優(yōu)先級低于關(guān)系運(yùn)算(!除外);(!除外);邏輯運(yùn)算符的功能:邏輯運(yùn)算符的功能:邏輯表達(dá)式:邏輯表達(dá)式:邏輯表達(dá)式運(yùn)算結(jié)果為邏輯值:真邏輯表達(dá)式運(yùn)算結(jié)果為邏輯值:真(1(1,判斷時(shí),判斷時(shí)以非零為真以非零為真) ),假(,假(0 0););當(dāng)當(dāng)&左邊為假左邊為假( |( |左邊為真左邊為真) )時(shí)時(shí), ,系統(tǒng)不計(jì)算系統(tǒng)不計(jì)算&( | )&( | )右邊表達(dá)式的值;右邊表達(dá)式的值;例如:設(shè)例如:設(shè)int a=1,b=0; int a=1,b=0; ba & a+ ba & a+ 的值為的值為 ? a = ? a = ?a|(+b)a|(+b)的

34、值為的值為 ? b= ? b= ?0 01 11 10 0int a=3,b=1,x=2,y=0;int a=3,b=1,x=2,y=0;(ab)&(xy) = 1(ab)&(xy) = 1 ab & xy = 1 ab & xy = 1(y|b)&(y|a) = 1(y|b)&(y|a) = 1 y|b & y|a = 1 y|b & y|a = 1 !a | ab = 1 !a | ab = 1條件運(yùn)算符條件運(yùn)算符: :條件運(yùn)算符為唯一的三目運(yùn)算符,其形式為條件運(yùn)算符為唯一的三目運(yùn)算符,其形式為“?:?:”條件表達(dá)式條件表達(dá)式

35、: :由條件運(yùn)算符構(gòu)成的表達(dá)式成為條件表達(dá)式,其形式由條件運(yùn)算符構(gòu)成的表達(dá)式成為條件表達(dá)式,其形式為:為: 表達(dá)式表達(dá)式1 1 ? 表達(dá)式表達(dá)式2 2 :表達(dá)式:表達(dá)式3 3條件運(yùn)算符中?和:總是成對出現(xiàn),其功能為:條件運(yùn)算符中?和:總是成對出現(xiàn),其功能為:條件表達(dá)式的優(yōu)先級條件表達(dá)式的優(yōu)先級: :高于賦值運(yùn)算;高于賦值運(yùn)算;低于關(guān)系運(yùn)算、邏輯運(yùn)算和算術(shù)運(yùn)算;低于關(guān)系運(yùn)算、邏輯運(yùn)算和算術(shù)運(yùn)算;表達(dá)式是右結(jié)合的;表達(dá)式是右結(jié)合的;使用條件表達(dá)式可以使程序簡潔明了;使用條件表達(dá)式可以使程序簡潔明了; x0 ? 0 : (x=0 ? 0 : -1)x0 ? 0 : (x=0 ? 0 : -1) ch

36、ar c=char c=A A; c=(c=c=(c=A A & c= & c=Z Z)?(c+32):c;)?(c+32):c; c= ? c= ? a 若若 x=5,y=6; x=5,y=6; k = xy?x+:y+; k = xy?3:k4?k:6; a=xy?3:k4?k:6; 則則 k= ? x= ? a= ? y= ? k= ? x= ? a= ? y= ? 5665 5位運(yùn)算符位運(yùn)算符按位邏輯運(yùn)算按位邏輯運(yùn)算移位運(yùn)算移位運(yùn)算位運(yùn)算賦值運(yùn)算符位運(yùn)算賦值運(yùn)算符位運(yùn)算的對象是二進(jìn)制位,有如下操作:位運(yùn)算的對象是二進(jìn)制位,有如下操作: (按位求反)按位求反) (右移右移

37、) & (按位與)按位與) (按位異或)(按位異或) | (按位或)(按位或)優(yōu)先級同優(yōu)先級同+,+,右結(jié)合右結(jié)合優(yōu)先級比關(guān)系運(yùn)算符高優(yōu)先級比關(guān)系運(yùn)算符高優(yōu)先級比關(guān)系優(yōu)先級比關(guān)系運(yùn)算符低運(yùn)算符低, ,比邏比邏輯運(yùn)算符高輯運(yùn)算符高1=01=0,0=10=1 1. 按位求反按位求反 (0000100000001000)= 11110111 = 11110111 左移左移右補(bǔ)右補(bǔ)0000010002 = 00100000000010002 = 00100000 82 = 8 82 = 00000010000010002 = 00000010 82 = 8 82 = 8* *2 2-2-2=2

38、=2111110002 = 11111110111110002 = 11111110 -82 = -8 -82 = -8* *2 2-2-2=-2=-2 3. 按位右移按位右移右移右移 正數(shù)左補(bǔ)正數(shù)左補(bǔ)0, 負(fù)數(shù)左補(bǔ)負(fù)數(shù)左補(bǔ)11&1=1, 1&0=0&1=0&0=04. 按位與按位與0101010110011001 & 0000 & 000011111111=0000=000010011001 保留特定位保留特定位按位邏輯運(yùn)算與移位運(yùn)算按位邏輯運(yùn)算與移位運(yùn)算11=00=0, 10=01=10|0=0, 1|0= 1|1=0|1=15. 按位異或按

39、位異或6. 按位或按位或0101010110011001 0000 000011111111=0101=010101100110 特定位取反特定位取反0101010110011001 | 0000 | 000011111111=0101=010111111111 特定位置賦特定位置賦1 1位運(yùn)算符與賦值運(yùn)算符可以組成以下五種位位運(yùn)算符與賦值運(yùn)算符可以組成以下五種位運(yùn)算賦值運(yùn)算符:運(yùn)算賦值運(yùn)算符:x &= y; x &= y; 相當(dāng)于:相當(dāng)于:x = x&y;x = x&y;x |= y; x |= y; 相當(dāng)于:相當(dāng)于:x = x|y;x = x|y;x = y

40、; x = y; 相當(dāng)于:相當(dāng)于:x = xy;x = xy;x = y; x = y; 相當(dāng)于:相當(dāng)于:x = xy;x = x-、 . . 運(yùn)算符運(yùn)算符: :用來引用結(jié)構(gòu)成員的運(yùn)算符用來引用結(jié)構(gòu)成員的運(yùn)算符; ;優(yōu)先級最高優(yōu)先級最高, ,左結(jié)合左結(jié)合; ;(type)(type)運(yùn)算符:運(yùn)算符:形式:形式:( (類型類型) )表達(dá)式表達(dá)式功能:將表達(dá)式強(qiáng)制轉(zhuǎn)換成指定類型;功能:將表達(dá)式強(qiáng)制轉(zhuǎn)換成指定類型;(int)(a+2int)(a+2* *0.5) 0.5) (int)a(int)a+2+2* *0.50.5 int(a+2 int(a+2* *0.5)0.5)運(yùn)算符優(yōu)先級小結(jié)運(yùn)算符優(yōu)

41、先級小結(jié)混合運(yùn)算及數(shù)據(jù)類型轉(zhuǎn)換l 混合運(yùn)算:混合運(yùn)算: 是指在一個(gè)表達(dá)式中參與運(yùn)算的對象不是相 同的數(shù)據(jù)類型;整型、單精度型、雙精度型數(shù)據(jù)可以混合運(yùn)算。且字符整型、單精度型、雙精度型數(shù)據(jù)可以混合運(yùn)算。且字符型數(shù)據(jù)可以與整型通用。因此型數(shù)據(jù)可以與整型通用。因此,整型、實(shí)型整型、實(shí)型(包括單、雙精度包括單、雙精度)、字符型數(shù)據(jù)間可以混合運(yùn)算。、字符型數(shù)據(jù)間可以混合運(yùn)算。例如例如:10+a+1.5-8765.1234*b 是合法的。在進(jìn)行運(yùn)是合法的。在進(jìn)行運(yùn)算時(shí)算時(shí), ,不同類型的數(shù)據(jù)要先轉(zhuǎn)換成同一類型不同類型的數(shù)據(jù)要先轉(zhuǎn)換成同一類型, ,然后然后進(jìn)行運(yùn)算進(jìn)行運(yùn)算?;旌线\(yùn)算及數(shù)據(jù)類型轉(zhuǎn)換混合運(yùn)算及數(shù)

42、據(jù)類型轉(zhuǎn)換l數(shù)據(jù)類型轉(zhuǎn)換:數(shù)據(jù)類型轉(zhuǎn)換:運(yùn)算中運(yùn)算中charchar型轉(zhuǎn)換為型轉(zhuǎn)換為intint型,型,floatfloat型轉(zhuǎn)換為型轉(zhuǎn)換為doubldoubl型;型;低級類型服從高級類型,并進(jìn)行相應(yīng)的轉(zhuǎn)換;低級類型服從高級類型,并進(jìn)行相應(yīng)的轉(zhuǎn)換;char-int-unsigned-long-float-doublechar-int-unsigned-long-float-double 低低高高賦值運(yùn)算中最終結(jié)果的類型以賦值運(yùn)算符左邊變量的賦值運(yùn)算中最終結(jié)果的類型以賦值運(yùn)算符左邊變量的類型為準(zhǔn);類型為準(zhǔn);l C C語言中所有的實(shí)數(shù)運(yùn)算都以語言中所有的實(shí)數(shù)運(yùn)算都以doubledouble進(jìn)行;進(jìn)

43、行;混合運(yùn)算及數(shù)據(jù)類型轉(zhuǎn)換混合運(yùn)算及數(shù)據(jù)類型轉(zhuǎn)換float a=0.5;int b;char c=a;則下列表達(dá)式的類型是 5 + 2 * a c b = 5 + 2 * a cdouble int如如 i=3;printf (“%d”,+i ); 輸出輸出 4 。若改為若改為 printf (“%d”, i+); 則輸出則輸出 3 。(1)自增運(yùn)算符自增運(yùn)算符(+), 自減運(yùn)算符自減運(yùn)算符(-),只能用于整型、只能用于整型、字符型和指針型變量,而不能用于常量或表達(dá)式。字符型和指針型變量,而不能用于常量或表達(dá)式。實(shí)際的運(yùn)算為右結(jié)合實(shí)際的運(yùn)算為右結(jié)合(2) +和和-的結(jié)合方向是的結(jié)合方向是“自右至左自右至左”。(右結(jié)合性)。(右結(jié)合性)-(i+)按按算術(shù)運(yùn)算符的算術(shù)運(yùn)算符的“自左而右自左而右”結(jié)合為結(jié)合為 (-i)+,是不合法的是不合法的自增、自減運(yùn)算符自增、自減運(yùn)算符i+ji+j, 是是 (i+

溫馨提示

  • 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)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論