C語言-數(shù)據(jù)的表示與運(yùn)算課件_第1頁
C語言-數(shù)據(jù)的表示與運(yùn)算課件_第2頁
C語言-數(shù)據(jù)的表示與運(yùn)算課件_第3頁
C語言-數(shù)據(jù)的表示與運(yùn)算課件_第4頁
C語言-數(shù)據(jù)的表示與運(yùn)算課件_第5頁
已閱讀5頁,還剩53頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

第二章第二章本章要點(diǎn)數(shù)據(jù)的存儲(chǔ)及數(shù)據(jù)類型數(shù)據(jù)的表示——常量和變量數(shù)據(jù)的運(yùn)算及其規(guī)則本章要點(diǎn)數(shù)據(jù)的存儲(chǔ)及數(shù)據(jù)類型2.1數(shù)據(jù)的存儲(chǔ)及數(shù)據(jù)類型以二進(jìn)制形式存儲(chǔ)計(jì)算機(jī)存儲(chǔ)器的存儲(chǔ)單元按字節(jié)編址C語言針對(duì)不同類型的數(shù)據(jù)采用不同的存儲(chǔ)方式——具體體現(xiàn)在不同的“數(shù)據(jù)類型”上2.1數(shù)據(jù)的存儲(chǔ)及數(shù)據(jù)類型以二進(jìn)制形式存儲(chǔ)C語言提供了以下一些數(shù)據(jù)類型:

數(shù)據(jù)類型構(gòu)造類型指針類型空類型(無值類型)void枚舉類型enum數(shù)組類型結(jié)構(gòu)體類型struct聯(lián)合體類型union基本類型整型int字符型char實(shí)型(浮點(diǎn)型)單精度實(shí)型float雙精度實(shí)型doubleC語言提供了以下一些數(shù)據(jù)類型:數(shù)據(jù)整數(shù)的存儲(chǔ)方式:

以十進(jìn)制補(bǔ)碼形式存儲(chǔ)。一般整數(shù)占用的空間:TurboC2.0:2個(gè)字節(jié)的存儲(chǔ)單元

TurboC++3.0:2個(gè)字節(jié)的存儲(chǔ)單元VC++6.0:4個(gè)字節(jié)根據(jù)占用空間和數(shù)值范圍的不同細(xì)分為幾種類型:

基本整型int無符號(hào)的基本整型unsignedint短整型shortint無符號(hào)的短整型unsignedshortint長整型longint無符號(hào)的長整型unsignedlongint

整數(shù)的存儲(chǔ)方式:類型聲明符字節(jié)數(shù)取值范圍int2-32768~32767即-215~(215-1)short[int]2-32768~32767即-215~(215-1)long[int]4-2147483648~2147483647

即-231~(231-1)unsigned[int]20~65535即0~(216-1)unsignedshort20~65535即0~(216-1)unsignedlong40~4294967295即0~(232-1)以TurboC++3.0為例:類型聲明符字節(jié)數(shù)取值范圍int2-32768~32767實(shí)數(shù)的存儲(chǔ)形式:實(shí)數(shù)采用指數(shù)形式存儲(chǔ),即浮點(diǎn)數(shù)。將實(shí)數(shù)轉(zhuǎn)化為標(biāo)準(zhǔn)化指數(shù)形式,分別存儲(chǔ)尾數(shù)部分和指數(shù)部分。

類型位數(shù)絕對(duì)值范圍有效數(shù)字float4字節(jié)10-38~10387Double8字節(jié)10-308~1030816longdouble16字節(jié)10-4932~10493219實(shí)數(shù)的存儲(chǔ)形式:類型位數(shù)單個(gè)字符的存儲(chǔ)方式:存儲(chǔ)字符的編碼;目前大多數(shù)計(jì)算機(jī)采用ASCII代碼;占用的空間:一個(gè)字節(jié)的存儲(chǔ)空間。例如:

字符’A’

為char類型,在內(nèi)存中占1字節(jié),存儲(chǔ)的是其ASCII碼值65。單個(gè)字符的存儲(chǔ)方式:2.2程序中數(shù)據(jù)是如何表示的?常量、變量常量:

程序運(yùn)行過程中,其值不能

被改變的量。常量也相應(yīng)地區(qū)分為不同的類型:#include<stdio.h>voidmain(){ inti,x,s,avg; i=0; s=0;

do{ scanf("%d",&x); s=s+x; i=i+1;

}while(i<10);avg=s/10; printf("avg=%d\n",avg);}整型125,-100,0,037,0x38

默認(rèn)為int,可以用后綴指

明類型:289L,32767L,

39u,39090u,65536Lu實(shí)型3.14,-3.7e9,.23e-3默認(rèn)double類型,9.6f為float型字符型‘a(chǎn)’,‘b’,‘2’字符串“a”,“ab”,“1234”八進(jìn)制十六進(jìn)制2.2程序中數(shù)據(jù)是如何表示的?常量、變量#include#include<stdio.h>voidmain(){inta;a=32767+1;/*int+int*/printf("a=%d",a);}運(yùn)行時(shí)顯示??-3276801111111

111111113276700000000

000000011-----------------------------------10000000

00000000-32768小心結(jié)果“溢出”!整型數(shù)據(jù)運(yùn)算中應(yīng)該注意的問題:請(qǐng)思考:longa;a=32767+1;a:-32768longa;a=32767L+1;a:3276800000000

00000000

01111111

1111111132767L00000000

00000000

00000000

000000011-----------------------------------------------------00000000

00000000

10000000

0000000032768#include<stdio.h>運(yùn)行時(shí)顯示??-32(1)字符本質(zhì)上是整數(shù),既可以當(dāng)作字符,也可以當(dāng)作整數(shù)使用;

printf(“%c,%d,%c,%c”,’a’,’a’,’a’-32,97-32);運(yùn)行時(shí)顯示??a,97,A,A字符型數(shù)據(jù)注意的問題:(2)有些特殊字符無法正常表示出來,需要使用轉(zhuǎn)義符“\”進(jìn)行轉(zhuǎn)義。

換行符(ASCII碼值為10)表示為‘\n’,即把字母n轉(zhuǎn)義為換行符。如:inta=10,b=20;

printf(“a=%d\nb=%d\n”,a,b);(1)字符本質(zhì)上是整數(shù),既可以當(dāng)作字符,也可以當(dāng)作整數(shù)使用;轉(zhuǎn)義字符表示含義ASCII碼\\反斜杠字符“\”92\’單引號(hào)字符39\”雙引號(hào)字符34\n換行,將當(dāng)前位置移到下一行開頭10\t水平制表,橫向跳到下一個(gè)輸出區(qū)9\r回車,將當(dāng)前位置移到本行開頭13\f打印換頁,將當(dāng)前位置移到下頁開頭12\b退格,將當(dāng)前位置移到前一列8\ddd1到3位八進(jìn)制數(shù)所代表的字符\xhh1到2位十六進(jìn)制數(shù)所代表的字符printf("a=%d\tb=\'%c\'\tTCP\\IP\n",26,'\101');轉(zhuǎn)義字符表示含義ASCII碼\\反斜杠字符“\”92\’單引變量:

指在程序的執(zhí)行過程中其值可以發(fā)生變化的量。#include<stdio.h>voidmain(){ inti,x,s,avg; i=0; s=0;

do{ scanf("%d",&x); s=s+x; i=i+1;

}while(i<10);avg=s/10; printf("avg=%d\n",avg);}變量的四要素變量名變量類型變量值存儲(chǔ)單元變量必須先聲明,后使用;可在聲明同時(shí)初始化。intsum=0,count=0,i,k;floatarea,avg,y;doublepi=3.14159;charanswer=‘Y’,c1,c2;變量命名規(guī)則:

字母打頭,后跟字母、數(shù)字、下劃線;

盡量“見名知義”;

不能與C語言保留字相同;

注意區(qū)分大小寫。變量:

指在程序的執(zhí)行過程中其值可以發(fā)生變化的量。#incl例如:變量a聲明為以下不同類型時(shí),執(zhí)行

a=13;

后內(nèi)存中實(shí)際存放的情況:例如:2.3數(shù)據(jù)的運(yùn)算及其規(guī)則2.3.1算術(shù)運(yùn)算符(1)基本的算術(shù)運(yùn)算符:+(加法運(yùn)算符,或正值運(yùn)算符。如:3+5、+3)-(減法運(yùn)算符,或負(fù)值運(yùn)算符。如:5-2、-3)*(乘法運(yùn)算符。如:3*5)/(除法運(yùn)算符。如:5/3)%模運(yùn)算符,或稱求余運(yùn)算符,%兩側(cè)均應(yīng)為整型數(shù)據(jù),如:7%4的值為3)。5/3結(jié)果?是1還是1.666667?2.3數(shù)據(jù)的運(yùn)算及其規(guī)則2.3.1算術(shù)運(yùn)算符5/3(2)運(yùn)算符的優(yōu)先級(jí)與結(jié)合性C語言規(guī)定了運(yùn)算符的優(yōu)先級(jí)在表達(dá)式求值時(shí),先按運(yùn)算符的優(yōu)先級(jí)別高低次序執(zhí)行,例如先乘除后加減。C還規(guī)定了各種運(yùn)算符的結(jié)合方向(結(jié)合性)

基本算術(shù)運(yùn)算符的結(jié)合方向?yàn)椤白宰笾劣摇?,即先左后右。?yōu)先級(jí)與結(jié)合性(2)運(yùn)算符的優(yōu)先級(jí)與結(jié)合性優(yōu)先級(jí)與結(jié)合性(3)

自增、自減運(yùn)算符作用:使變量的值增1或減1如:++i,--i(在使用i之前,先使i的值加(減)1)i++,i--(在使用i之后,使i的值加(減)1)

注意:

(1)自增運(yùn)算符(++),自減運(yùn)算符(--),只能用于變量,不能用于常量或表達(dá)式,(2)++和--的結(jié)合方向是“自右至左”。(3)i++與++i的區(qū)別:

++i是先執(zhí)行i=i+1后,再使用i的值,如j=++i;i++是先使用i的值后,再執(zhí)行i=i+1,如j=i++;優(yōu)先級(jí)與結(jié)合性(3)自增、自減運(yùn)算符注意:(3)i++與++i的區(qū)別:(1)算術(shù)表達(dá)式運(yùn)算對(duì)象包括常量、變量、函數(shù)等。

例如:a*b/c-1.5+’a’是一個(gè)合法的表達(dá)式(2)運(yùn)算規(guī)則:一個(gè)運(yùn)算符的兩運(yùn)算量類型要相同。(3)表達(dá)式中不同數(shù)據(jù)類型的轉(zhuǎn)換

自動(dòng)轉(zhuǎn)換:編譯系統(tǒng)自動(dòng)完成

強(qiáng)制類型轉(zhuǎn)換:(類型名)(表達(dá)式)2.3.2算術(shù)表達(dá)式(1)算術(shù)表達(dá)式2.3.2算術(shù)表達(dá)式自動(dòng)轉(zhuǎn)換:

混合運(yùn)算:整型(包括int,short,long)、浮點(diǎn)型(包括float,double)可以混合運(yùn)算。在進(jìn)行運(yùn)算時(shí),不同類型的數(shù)據(jù)會(huì)自動(dòng)先轉(zhuǎn)換成同一類型,然后進(jìn)行運(yùn)算.說明:這種類型轉(zhuǎn)換是由系統(tǒng)自動(dòng)進(jìn)行的。inta=10,result;floatb=2.5;doublec=19.5;longd=3;result=20+’A’+a*b-c/d;printf(“%d\n”,result);請(qǐng)分析表達(dá)式計(jì)算過程及運(yùn)行結(jié)果?103自動(dòng)轉(zhuǎn)換:混合運(yùn)算:整型(包括int,short,lo強(qiáng)制類型轉(zhuǎn)換:強(qiáng)制類型轉(zhuǎn)換運(yùn)算符的作用是:將一個(gè)表達(dá)式轉(zhuǎn)換成所需類型

一般形式:(類型名)(表達(dá)式)例如:(float)a將a轉(zhuǎn)換成float類型(int)(x+y)將x+y的值轉(zhuǎn)換成整型(float)1/5將1轉(zhuǎn)換成float型,結(jié)果為float型強(qiáng)制類型轉(zhuǎn)換:2.3.3C運(yùn)算符

C的運(yùn)算符有以下幾類:(1)算術(shù)運(yùn)算符(+-*/%++--)(2)關(guān)系運(yùn)算符(><>=<=!===)(3)邏輯運(yùn)算符(?。Γ|)(4)位運(yùn)算符(<<>>~|∧&)(5)賦值運(yùn)算符(=及其擴(kuò)展賦值運(yùn)算符)(6)條件運(yùn)算符(?:)(7)逗號(hào)運(yùn)算符(,)2.3.3C運(yùn)算符(8)指針運(yùn)算符(*和&)(9)求字節(jié)數(shù)運(yùn)算符(sizeof)(10)強(qiáng)制類型轉(zhuǎn)換運(yùn)算符((類型))(11)分量運(yùn)算符(.->)(12)下標(biāo)運(yùn)算符([])(13)其他(如函數(shù)調(diào)用運(yùn)算符())(8)指針運(yùn)算符(*和&)關(guān)系運(yùn)算符:(><>=<=!===)(1)關(guān)系表達(dá)式的值:真——1,假——0例如:if(a+b>=10)……if(x%2==0)……if(a!=b)……if(c>=‘A’)(2)優(yōu)先級(jí)與結(jié)合性:左結(jié)合例如:if(a>b==0)……if(a>b>c)……if(‘A’<=c<=‘Z’)優(yōu)先級(jí)與結(jié)合性關(guān)系運(yùn)算符:(><>=<=邏輯運(yùn)算符:(

?。Γ|)(1)各個(gè)邏輯運(yùn)算符的運(yùn)算規(guī)則(1)邏輯表達(dá)式的值:真——1,假——0例如:if(a>b&&b>c)……if(‘A’<=c&&c<=‘Z’)if(x%3==0||x%5==0)……if(!(a>b))……if(!a)……(2)優(yōu)先級(jí)與結(jié)合性:左結(jié)合例如:if(!a||b)……if(y%4==0&&y%100!=0||y%400==0)…優(yōu)先級(jí)與結(jié)合性

數(shù)值轉(zhuǎn)換為邏輯量:

非0——真0——假另外還要注意

“短路”問題邏輯運(yùn)算符:(!&&||)(賦值運(yùn)算符:(=以及擴(kuò)展的賦值運(yùn)算符)(1)計(jì)算表達(dá)式的值后賦值給變量例如:a=b*2/3;i=i+1;(2)賦值表達(dá)式的值:賦值后變量的值例如:printf("%d",a=30);(3)優(yōu)先級(jí)與結(jié)合性:右結(jié)合例如:a=b=c=0;等價(jià)于a=(b=(c=0));(4)右側(cè)表達(dá)式類型與變量類型不符時(shí)如何轉(zhuǎn)換?原則:以變量類型為準(zhǔn)自動(dòng)變換。優(yōu)先級(jí)與結(jié)合性C語言的表達(dá)式加上分號(hào)成為一條語句。賦值運(yùn)算符:(=以及擴(kuò)展的賦值運(yùn)算符)(1)計(jì)算表達(dá)式賦值運(yùn)算符:(=以及擴(kuò)展的賦值運(yùn)算符)(5)擴(kuò)展的復(fù)合賦值運(yùn)算符:+=-=*=/=%=例如:a+=b*2/3;等價(jià)于:a=a+(b+2/3);優(yōu)先級(jí)與結(jié)合性條件運(yùn)算符:(?:)例如:printf("%d\n",a>b?a:b);d=a>b?a:b>c?b:c;/*右結(jié)合性*/賦值運(yùn)算符:(=以及擴(kuò)展的賦值運(yùn)算符)(5)擴(kuò)展的復(fù)合逗號(hào)運(yùn)算符:(,)例如:a=10,b=a+20,c=90;左結(jié)合性;

整個(gè)表達(dá)式的值取最后一個(gè)表達(dá)式的值。優(yōu)先級(jí)與結(jié)合性逗號(hào)運(yùn)算符:(,)例如:a=10,b=a+20,c=9高優(yōu)先級(jí)運(yùn)算符功能結(jié)合性

高低!-、++、--(類型名)*、&、sizeof邏輯非取負(fù)、自增、自減強(qiáng)制類型轉(zhuǎn)換指針、地址、求字節(jié)數(shù)從右到左*、/、%乘、除、整數(shù)求余從左到右+、-加、減從左到右>、>=、<、<=大于、大于等于小于、小于等于從左到右==、!=等于、不等于從左到右&&邏輯與從左到右||邏輯或從左到右?:條件運(yùn)算符從右到左=、+=、-=、*=、/=、%=賦值、運(yùn)算并賦值從右到左,逗號(hào)運(yùn)算符從左到右返回高優(yōu)先級(jí)運(yùn)算符功能結(jié)合性

高!邏輯非從右到左*、/、%乘、除作業(yè):

一、二、三、

四(1,2)、五作業(yè):

一、二、三、

四(1,2)、五第二章第二章本章要點(diǎn)數(shù)據(jù)的存儲(chǔ)及數(shù)據(jù)類型數(shù)據(jù)的表示——常量和變量數(shù)據(jù)的運(yùn)算及其規(guī)則本章要點(diǎn)數(shù)據(jù)的存儲(chǔ)及數(shù)據(jù)類型2.1數(shù)據(jù)的存儲(chǔ)及數(shù)據(jù)類型以二進(jìn)制形式存儲(chǔ)計(jì)算機(jī)存儲(chǔ)器的存儲(chǔ)單元按字節(jié)編址C語言針對(duì)不同類型的數(shù)據(jù)采用不同的存儲(chǔ)方式——具體體現(xiàn)在不同的“數(shù)據(jù)類型”上2.1數(shù)據(jù)的存儲(chǔ)及數(shù)據(jù)類型以二進(jìn)制形式存儲(chǔ)C語言提供了以下一些數(shù)據(jù)類型:

數(shù)據(jù)類型構(gòu)造類型指針類型空類型(無值類型)void枚舉類型enum數(shù)組類型結(jié)構(gòu)體類型struct聯(lián)合體類型union基本類型整型int字符型char實(shí)型(浮點(diǎn)型)單精度實(shí)型float雙精度實(shí)型doubleC語言提供了以下一些數(shù)據(jù)類型:數(shù)據(jù)整數(shù)的存儲(chǔ)方式:

以十進(jìn)制補(bǔ)碼形式存儲(chǔ)。一般整數(shù)占用的空間:TurboC2.0:2個(gè)字節(jié)的存儲(chǔ)單元

TurboC++3.0:2個(gè)字節(jié)的存儲(chǔ)單元VC++6.0:4個(gè)字節(jié)根據(jù)占用空間和數(shù)值范圍的不同細(xì)分為幾種類型:

基本整型int無符號(hào)的基本整型unsignedint短整型shortint無符號(hào)的短整型unsignedshortint長整型longint無符號(hào)的長整型unsignedlongint

整數(shù)的存儲(chǔ)方式:類型聲明符字節(jié)數(shù)取值范圍int2-32768~32767即-215~(215-1)short[int]2-32768~32767即-215~(215-1)long[int]4-2147483648~2147483647

即-231~(231-1)unsigned[int]20~65535即0~(216-1)unsignedshort20~65535即0~(216-1)unsignedlong40~4294967295即0~(232-1)以TurboC++3.0為例:類型聲明符字節(jié)數(shù)取值范圍int2-32768~32767實(shí)數(shù)的存儲(chǔ)形式:實(shí)數(shù)采用指數(shù)形式存儲(chǔ),即浮點(diǎn)數(shù)。將實(shí)數(shù)轉(zhuǎn)化為標(biāo)準(zhǔn)化指數(shù)形式,分別存儲(chǔ)尾數(shù)部分和指數(shù)部分。

類型位數(shù)絕對(duì)值范圍有效數(shù)字float4字節(jié)10-38~10387Double8字節(jié)10-308~1030816longdouble16字節(jié)10-4932~10493219實(shí)數(shù)的存儲(chǔ)形式:類型位數(shù)單個(gè)字符的存儲(chǔ)方式:存儲(chǔ)字符的編碼;目前大多數(shù)計(jì)算機(jī)采用ASCII代碼;占用的空間:一個(gè)字節(jié)的存儲(chǔ)空間。例如:

字符’A’

為char類型,在內(nèi)存中占1字節(jié),存儲(chǔ)的是其ASCII碼值65。單個(gè)字符的存儲(chǔ)方式:2.2程序中數(shù)據(jù)是如何表示的?常量、變量常量:

程序運(yùn)行過程中,其值不能

被改變的量。常量也相應(yīng)地區(qū)分為不同的類型:#include<stdio.h>voidmain(){ inti,x,s,avg; i=0; s=0;

do{ scanf("%d",&x); s=s+x; i=i+1;

}while(i<10);avg=s/10; printf("avg=%d\n",avg);}整型125,-100,0,037,0x38

默認(rèn)為int,可以用后綴指

明類型:289L,32767L,

39u,39090u,65536Lu實(shí)型3.14,-3.7e9,.23e-3默認(rèn)double類型,9.6f為float型字符型‘a(chǎn)’,‘b’,‘2’字符串“a”,“ab”,“1234”八進(jìn)制十六進(jìn)制2.2程序中數(shù)據(jù)是如何表示的?常量、變量#include#include<stdio.h>voidmain(){inta;a=32767+1;/*int+int*/printf("a=%d",a);}運(yùn)行時(shí)顯示??-3276801111111

111111113276700000000

000000011-----------------------------------10000000

00000000-32768小心結(jié)果“溢出”!整型數(shù)據(jù)運(yùn)算中應(yīng)該注意的問題:請(qǐng)思考:longa;a=32767+1;a:-32768longa;a=32767L+1;a:3276800000000

00000000

01111111

1111111132767L00000000

00000000

00000000

000000011-----------------------------------------------------00000000

00000000

10000000

0000000032768#include<stdio.h>運(yùn)行時(shí)顯示??-32(1)字符本質(zhì)上是整數(shù),既可以當(dāng)作字符,也可以當(dāng)作整數(shù)使用;

printf(“%c,%d,%c,%c”,’a’,’a’,’a’-32,97-32);運(yùn)行時(shí)顯示??a,97,A,A字符型數(shù)據(jù)注意的問題:(2)有些特殊字符無法正常表示出來,需要使用轉(zhuǎn)義符“\”進(jìn)行轉(zhuǎn)義。

換行符(ASCII碼值為10)表示為‘\n’,即把字母n轉(zhuǎn)義為換行符。如:inta=10,b=20;

printf(“a=%d\nb=%d\n”,a,b);(1)字符本質(zhì)上是整數(shù),既可以當(dāng)作字符,也可以當(dāng)作整數(shù)使用;轉(zhuǎn)義字符表示含義ASCII碼\\反斜杠字符“\”92\’單引號(hào)字符39\”雙引號(hào)字符34\n換行,將當(dāng)前位置移到下一行開頭10\t水平制表,橫向跳到下一個(gè)輸出區(qū)9\r回車,將當(dāng)前位置移到本行開頭13\f打印換頁,將當(dāng)前位置移到下頁開頭12\b退格,將當(dāng)前位置移到前一列8\ddd1到3位八進(jìn)制數(shù)所代表的字符\xhh1到2位十六進(jìn)制數(shù)所代表的字符printf("a=%d\tb=\'%c\'\tTCP\\IP\n",26,'\101');轉(zhuǎn)義字符表示含義ASCII碼\\反斜杠字符“\”92\’單引變量:

指在程序的執(zhí)行過程中其值可以發(fā)生變化的量。#include<stdio.h>voidmain(){ inti,x,s,avg; i=0; s=0;

do{ scanf("%d",&x); s=s+x; i=i+1;

}while(i<10);avg=s/10; printf("avg=%d\n",avg);}變量的四要素變量名變量類型變量值存儲(chǔ)單元變量必須先聲明,后使用;可在聲明同時(shí)初始化。intsum=0,count=0,i,k;floatarea,avg,y;doublepi=3.14159;charanswer=‘Y’,c1,c2;變量命名規(guī)則:

字母打頭,后跟字母、數(shù)字、下劃線;

盡量“見名知義”;

不能與C語言保留字相同;

注意區(qū)分大小寫。變量:

指在程序的執(zhí)行過程中其值可以發(fā)生變化的量。#incl例如:變量a聲明為以下不同類型時(shí),執(zhí)行

a=13;

后內(nèi)存中實(shí)際存放的情況:例如:2.3數(shù)據(jù)的運(yùn)算及其規(guī)則2.3.1算術(shù)運(yùn)算符(1)基本的算術(shù)運(yùn)算符:+(加法運(yùn)算符,或正值運(yùn)算符。如:3+5、+3)-(減法運(yùn)算符,或負(fù)值運(yùn)算符。如:5-2、-3)*(乘法運(yùn)算符。如:3*5)/(除法運(yùn)算符。如:5/3)%模運(yùn)算符,或稱求余運(yùn)算符,%兩側(cè)均應(yīng)為整型數(shù)據(jù),如:7%4的值為3)。5/3結(jié)果?是1還是1.666667?2.3數(shù)據(jù)的運(yùn)算及其規(guī)則2.3.1算術(shù)運(yùn)算符5/3(2)運(yùn)算符的優(yōu)先級(jí)與結(jié)合性C語言規(guī)定了運(yùn)算符的優(yōu)先級(jí)在表達(dá)式求值時(shí),先按運(yùn)算符的優(yōu)先級(jí)別高低次序執(zhí)行,例如先乘除后加減。C還規(guī)定了各種運(yùn)算符的結(jié)合方向(結(jié)合性)

基本算術(shù)運(yùn)算符的結(jié)合方向?yàn)椤白宰笾劣摇?,即先左后右。?yōu)先級(jí)與結(jié)合性(2)運(yùn)算符的優(yōu)先級(jí)與結(jié)合性優(yōu)先級(jí)與結(jié)合性(3)

自增、自減運(yùn)算符作用:使變量的值增1或減1如:++i,--i(在使用i之前,先使i的值加(減)1)i++,i--(在使用i之后,使i的值加(減)1)

注意:

(1)自增運(yùn)算符(++),自減運(yùn)算符(--),只能用于變量,不能用于常量或表達(dá)式,(2)++和--的結(jié)合方向是“自右至左”。(3)i++與++i的區(qū)別:

++i是先執(zhí)行i=i+1后,再使用i的值,如j=++i;i++是先使用i的值后,再執(zhí)行i=i+1,如j=i++;優(yōu)先級(jí)與結(jié)合性(3)自增、自減運(yùn)算符注意:(3)i++與++i的區(qū)別:(1)算術(shù)表達(dá)式運(yùn)算對(duì)象包括常量、變量、函數(shù)等。

例如:a*b/c-1.5+’a’是一個(gè)合法的表達(dá)式(2)運(yùn)算規(guī)則:一個(gè)運(yùn)算符的兩運(yùn)算量類型要相同。(3)表達(dá)式中不同數(shù)據(jù)類型的轉(zhuǎn)換

自動(dòng)轉(zhuǎn)換:編譯系統(tǒng)自動(dòng)完成

強(qiáng)制類型轉(zhuǎn)換:(類型名)(表達(dá)式)2.3.2算術(shù)表達(dá)式(1)算術(shù)表達(dá)式2.3.2算術(shù)表達(dá)式自動(dòng)轉(zhuǎn)換:

混合運(yùn)算:整型(包括int,short,long)、浮點(diǎn)型(包括float,double)可以混合運(yùn)算。在進(jìn)行運(yùn)算時(shí),不同類型的數(shù)據(jù)會(huì)自動(dòng)先轉(zhuǎn)換成同一類型,然后進(jìn)行運(yùn)算.說明:這種類型轉(zhuǎn)換是由系統(tǒng)自動(dòng)進(jìn)行的。inta=10,result;floatb=2.5;doublec=19.5;longd=3;result=20+’A’+a*b-c/d;printf(“%d\n”,result);請(qǐng)分析表達(dá)式計(jì)算過程及運(yùn)行結(jié)果?103自動(dòng)轉(zhuǎn)換:混合運(yùn)算:整型(包括int,short,lo強(qiáng)制類型轉(zhuǎn)換:強(qiáng)制類型轉(zhuǎn)換運(yùn)算符的作用是:將一個(gè)表達(dá)式轉(zhuǎn)換成所需類型

一般形式:(類型名)(表達(dá)式)例如:(float)a將a轉(zhuǎn)換成float類型(int)(x+y)將x+y的值轉(zhuǎn)換成整型(float)1/5將1轉(zhuǎn)換成float型,結(jié)果為float型強(qiáng)制類型轉(zhuǎn)換:2.3.3C運(yùn)算符

C的運(yùn)算符有以下幾類:(1)算術(shù)運(yùn)算符(+-*/%++--)(2)關(guān)系運(yùn)算符(><>=<=!===)(3)邏輯運(yùn)算符(?。Γ|)(4)位運(yùn)算符(<<>>~|∧&)(5)賦值運(yùn)算符(=及其擴(kuò)展賦值運(yùn)算符)(6)條件運(yùn)算符(?:)(7)逗號(hào)運(yùn)算符(,)2.3.3C運(yùn)算符(8)指針運(yùn)算符(*和&)(9)求字節(jié)數(shù)運(yùn)算符(sizeof)(10)強(qiáng)制類型轉(zhuǎn)換運(yùn)算符((類型))(11)分量運(yùn)算符(.->)(12)下標(biāo)運(yùn)算符([])(13)其他(如函數(shù)調(diào)用運(yùn)算符())(8)指針運(yùn)算符(*和&)關(guān)系運(yùn)算符:(><>=<=!===)(1)關(guān)系表達(dá)式的值:真——1,假——0例如:if(a+b>=10)……if(x%2==0)……if(a!=b)……if(c>=‘A’)(2)優(yōu)先級(jí)與結(jié)合性:左結(jié)合例如:if(a>b==0)……if(a>b>c)……if(‘A’<=c<=‘Z’)優(yōu)

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(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)論