版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
第三章基本數(shù)據(jù)類型和運算第一頁,共四十七頁,2022年,8月28日3.1C的數(shù)據(jù)類型
1、基本類型:整型、實型、字符型、枚舉型;2、構(gòu)造類型:數(shù)組類型、結(jié)構(gòu)體類型、共用體類型3、指針類型4、空類型C程序中的數(shù)據(jù)包括:
(1)常量—是程序執(zhí)行前值已知,執(zhí)行過程中不能被改變的數(shù)據(jù)。
(2)變量—是執(zhí)行過程中可以被改變的數(shù)據(jù)。
(3)有返回值的函數(shù)—被看成變量。本章主要介紹基本數(shù)據(jù)類型第二頁,共四十七頁,2022年,8月28日3.2常量與變量
3.2.1標(biāo)識符1、標(biāo)識符的含義:在C語言中用于標(biāo)識名字的有效字符序列。通常是指用戶定義的符號常量、變量、數(shù)組和函數(shù)的名字等。C語言中沒有標(biāo)準標(biāo)識符的概念,main可以看成為唯一的標(biāo)準標(biāo)識符,它被編譯程序預(yù)定義為主函數(shù)的名字。第三頁,共四十七頁,2022年,8月28日2、標(biāo)識符的組成規(guī)則:標(biāo)識符是由字母(A~Z,a~z)、數(shù)字(0~9)和下劃線組成的序列。C語言對標(biāo)識符作如下規(guī)定:(1)標(biāo)識符的第一個字符必須是字母或下劃線。(2)如果說第一個字符后還有字符序列,則它就是字母、下劃線或數(shù)字組成的序列。標(biāo)識符中的字母大小寫是有區(qū)別的。如標(biāo)識符abc與標(biāo)識符ABC是不相同。
第四頁,共四十七頁,2022年,8月28日例:
正確的標(biāo)識符:program r0 file_2 a12 PIA_abab_
不正確的標(biāo)識符:
yes? (含有不合法字符“?”)2from (第一個字符不允許為數(shù)字)yesno (標(biāo)識符中不允許有空格)yes/no (含有不合法字符“/”)πr (“π”為不合法字符)Order.no(小數(shù)點(.)不是字母也不是數(shù)字)Up-to(減號(-)不是字母也不是數(shù)字)非法表示P->x(->不是字母也不是數(shù)字)Name[i]([]不是字母也不是數(shù)字)第五頁,共四十七頁,2022年,8月28日3.標(biāo)識符的有效長度有效長度能夠被編譯程序識別并區(qū)別于其它標(biāo)識符的那一部分,所包含的字符數(shù)目稱為標(biāo)識符的有效長度。C規(guī)定:標(biāo)識符的有效長度為前31個字符,超過部分忽略。例:abcd……z12345 abcd……z123456789
被視為同一標(biāo)識符,因后者中的6789已被忽略
前31個字符第六頁,共四十七頁,2022年,8月28日標(biāo)識符的選擇由程序自定,但是不能與保留字相同。另外,選擇標(biāo)識符時應(yīng)遵循“見名知義”的原則,即所選擇的標(biāo)符應(yīng)盡量與所要命名的對象有一定的聯(lián)系,以助于識別和記憶。例:length(表示長度)
PI(表示圓周率π)
time (表示時間)
第七頁,共四十七頁,2022年,8月28日4.關(guān)鍵字關(guān)鍵字——是具有特定含義的,專門用來說明C語言的特定成分的一類單詞。關(guān)鍵字又稱為保留字,即被保留作為專門用途的特殊標(biāo)識符。
C語言的關(guān)鍵字通常都是用小寫字母表示,而大寫字母通常代表一個常數(shù)。例:保留字int,不能寫成Int
由于關(guān)鍵字有特定的用途,所以一般不用于其他場合。第八頁,共四十七頁,2022年,8月28日3.2.2常量和符號常量在程序運行過程中不能改變的量——常量,常量有類型的。用一個大寫的標(biāo)識符代表一個常量——符號常量。注意:符號常量在其作用域是不能改值的,也不能再賦值。如:#definePI3.1415926main(){floatr,s;scanf(“%f”,&r);s=PI*r*r;printf(“s=%f\n”,s);}第九頁,共四十七頁,2022年,8月28日符號常量的定義有三種方法:方法一:用編輯預(yù)處理指令#define定義一個符號常量;方法二:用const類型限定符定義一個符號常量;方法三:用枚舉類型定義一組符號常量。第十頁,共四十七頁,2022年,8月28日3.2.3變量值可以改變的量稱為變量。一個變量有一個名字,在內(nèi)存中占有一定的單元,該單元中存放該變量的值。注意:變量名和變量值是兩個不同的概念。
12x變量名變量值存儲單元第十一頁,共四十七頁,2022年,8月28日變量與標(biāo)識符的命名規(guī)則一樣。大寫字母與小寫字母表示不同的變量。取變量名時注意做到“見名知意”,但有時為了方便,取簡單的標(biāo)識符(如a,b)做為變量名。C語言中要求所有變量在使用之前先定義。第十二頁,共四十七頁,2022年,8月28日3.3整型數(shù)據(jù)
3.3.1整型常量的表示方法整型常量就是整常數(shù),它可以用三種形式表示:(1)十進制整數(shù):
123,-234,0(2)八進制整數(shù):以數(shù)字0開頭的整數(shù)是八進制數(shù)。如0123代表八進制數(shù)123,-0234代表八進制數(shù)-234。(3)十六進制整數(shù):以0x開頭的整數(shù)是十六進制數(shù)。如0x123代表十六進制數(shù)123,-0x23代表十六進制數(shù)23。第十三頁,共四十七頁,2022年,8月28日
3.3.2整型變量1.整型數(shù)據(jù)在內(nèi)存中的存放形式整型數(shù)據(jù)在內(nèi)存中通常占兩個字節(jié)。所有數(shù)據(jù)在內(nèi)存中都用補碼形式存放。兩個字節(jié)中,第一個字節(jié)的最高位(首位)作為數(shù)據(jù)的符號位:正數(shù)為0,負數(shù)為1。2.整型變量的分類整型變量的基本類型符是int,可以定義類型:
(1)基本類型:int
占2個字節(jié),-32768—32767第十四頁,共四十七頁,2022年,8月28日
(2)短整型:shortint或short
占2個字節(jié),-32768—32767(3)長整型:longint或long
占4個字節(jié),-2147483648—147483648
(4)有符號整數(shù):signed
占2個字節(jié),-32768—32767
(5)無符號整數(shù):unsigned
·無符號短整型,占2個字節(jié),0—65535·無符號長整型,占4個字節(jié)0—4294967295第十五頁,共四十七頁,2022年,8月28日3.整型變量的定義對變量的定義,一般是放在一個函數(shù)的開頭部分的聲明部分中。格式:
類型變量1,變量2,…,變量n;說明:變量名之間用逗號“,”隔開。一個說明語句結(jié)束時,必須有分號“;”。例:inta,b,c;
shortx,y;unsignedd;第十六頁,共四十七頁,2022年,8月28日4.整型數(shù)據(jù)的溢出當(dāng)數(shù)據(jù)大于所定義的類型范圍時,就產(chǎn)生溢出。P44產(chǎn)生整數(shù)溢出的后果:
對于常量,編譯時產(chǎn)生語法錯誤;對于變量,將得不到正確的結(jié)果。程序中如何避免整數(shù)溢出:
為避免溢出或類型轉(zhuǎn)換的需要,應(yīng)根據(jù)具體情況將整數(shù)相應(yīng)地表示為長整數(shù)、無符號整數(shù)或無符號長整數(shù)。方法是:對于常量,加整數(shù)后綴(U、u、L、l);對于變量,則說明為long,unsigned,unsignedlong類型第十七頁,共四十七頁,2022年,8月28日
3.4
實型數(shù)據(jù)3.4.1實型常量的表示法⑴小數(shù)形式:由數(shù)字、數(shù)符和小數(shù)點組成(必須有小數(shù)點)。例:0.123,-123.,.123⑵指數(shù)形式:數(shù)字部分e指數(shù)部分。例:123e3,1.2e5注意:字母e(或E)之前必須有數(shù)字,e后面指數(shù)必須是整數(shù)(1~3位)。如:e3、、e是不合法的指數(shù)形式第十八頁,共四十七頁,2022年,8月28日一般形式為:
[±][整數(shù)部分][·][小數(shù)部分][e±n]
注意:(1)一個浮點數(shù)可以無整數(shù)部分或小數(shù)部分,但不能二者均無。(2)一個浮點數(shù)可以無小數(shù)點部分或指數(shù)部分,但不能二者均無。無論哪種情況,都必須有小數(shù)點。n稱為階碼,n為1~3位十進制無符號整型常量(可以有前置0).n前面的“+”和整數(shù)部分前面的“+”可以省略。第十九頁,共四十七頁,2022年,8月28日3.4.2實型變量1、實型數(shù)據(jù)在內(nèi)存中的存放形式一般占4個字節(jié),看教材46頁。2、實型變量的分類
C語言中實型變量分為單精度(float)、雙精度(double)、長雙精度(longdouble)三類,對于第3類長雙精度用的較少,有關(guān)規(guī)定請看教材46頁表3.2。3、實型數(shù)據(jù)的舍入誤差注意:實型變量提供的有效數(shù)字是有限的。第二十頁,共四十七頁,2022年,8月28日3.4.3實型常量的類型
實型常量的類型通常也有上述三種,要特別注意實型數(shù)字的有效數(shù)字位問題??聪吕簃ain(){floata;doubleb;a=111111.111;b=111111.111;printf(“a=%f\nb=%f\n”,a,b);}運行結(jié)果:a=111111.109375b=111111.111000第二十一頁,共四十七頁,2022年,8月28日3.5字符型數(shù)據(jù)3.5.1字符常量字符型數(shù)據(jù)是用單引號括起來的單個字符,形式為:‘字符’。字符常數(shù)是一個整數(shù),值為所用計算機字符集中一個字符的ASCII編碼值(稱為字符碼),機器字符集一般為ASCII字符集?!址獑我杻?nèi)的字符有兩種表示方法:(1)用字符的圖形符號表示一個字符,形式為:‘字符的圖形符號’。(2)用轉(zhuǎn)義序列表示一個字符,形式為:‘轉(zhuǎn)義序列’。轉(zhuǎn)義序列是由反斜線(\)開頭的一個特殊字符串,每個轉(zhuǎn)義序列表示字符集中的一個字符。如教材48頁表3.3。第二十二頁,共四十七頁,2022年,8月28日看下面的例子:main(){printf(“abc\tde\rf\tg\n”);printf(“h\ti\b\bjk”);}在打印機上顯示:fabcgdehjik在屏幕上顯示:fgdehjk第二十三頁,共四十七頁,2022年,8月28日3.5.2字符變量
字符型變量只能放一個字符。定義charc1,c2;
賦值c1='a';c2='b';3.5.3字符數(shù)據(jù)存儲形式字符數(shù)據(jù)是以ASCII碼存儲的,它的存儲形式與整數(shù)的存儲形式相類似,即c1變量存儲的是ASCII碼97,也就是說下面兩個語句是等價的:c1='a’;和c1=97;01110000它們在內(nèi)存的存儲情況:第二十四頁,共四十七頁,2022年,8月28日看下面兩個例子:main(){charc1,c2;c1=97;c2=98;printf(“%c%c\n”,c1,c2);printf(“%d%d\n”,c1,c2);}運行結(jié)果為:ab9798main(){charc1,c2;c1=‘a(chǎn)’;c2=‘b’;c1=c1-32;c2=c2-32;printf(“%c%c\n”,c1,c2);}運行結(jié)果為:AB考慮:若c1是整型,c2是字符型,結(jié)果如何?第二十五頁,共四十七頁,2022年,8月28日字符串常量:
是用一對雙撇號括起來的字符序列,其形式為:“字符序列”例:“Thisisapen”一個字符串可以包含0個字符,表示為“”,稱為空串。字符串在機內(nèi)存儲時,系統(tǒng)在其末尾添加了一個‘\0’字符;‘\0’是字符串結(jié)束標(biāo)志,以便確定字符串的實際長度,即字符串的存儲長度要比實際長度大1。所以,空串的存儲長度為1而不是0。
3.5.4字符串常量第二十六頁,共四十七頁,2022年,8月28日注意:(1)“a”和‘a(chǎn)’是兩個不同的概念:字符串“a”是存儲長度為2的一個字符串。字符‘a(chǎn)’是一個字符,實際上是一個值為ASCII碼的整數(shù)。(2)當(dāng)雙引號作為字符串的組成字符時,必須用轉(zhuǎn)義序列表示。例:“3’40\””(3)當(dāng)單引號作為字符串的組成字符時,可以用圖形符號表示。例:“It’sapen”
從存儲結(jié)構(gòu)上講,字符串是一個字符數(shù)組。第二十七頁,共四十七頁,2022年,8月28日語法規(guī)定:
如果字符串常數(shù)一行寫不下,則有兩種方法可以將行擴展到下一行:一種方法是在行的末尾加續(xù)行符“\”。
如:printf(“#Hello!\howareyou?”);另一種方法是依靠字符串連接功能
如:printf(“Hello!”“howareyou?”);
第二十八頁,共四十七頁,2022年,8月28日可以在定義變量的同時進行變量初始化。例:inta=3;/*指定a為整型變量,初值為3*/floatf=3.56;charc='a';說明:1.可以給被定義的變量的一部分賦初值。
inta,b,c=5;2.可以對幾個變量賦以同一個值。但不能寫成:
inta=b=c=3;應(yīng)該寫成inta=3,b=3,c=3;3.變量賦初值是在程序運行時完成的。
inta=3;相當(dāng)于inta;a=3;兩條語句
3.6變量賦初值第二十九頁,共四十七頁,2022年,8月28日整型、實型(單、雙精度)、字符型數(shù)據(jù)間可以混合運算。例如:
10+'a'+1.5-8765.1234*'b'
高double←float↑long↑unsigned↑
低int←char,short
為必定的轉(zhuǎn)換當(dāng)運算對象為不同類型時轉(zhuǎn)換的方向
3.7各類數(shù)值型數(shù)據(jù)間的混合運算第三十頁,共四十七頁,2022年,8月28日3.8
算術(shù)運算符和算術(shù)表達式3.8.1運算符的種類1)算術(shù)運算符+-*/%2)關(guān)系運算符><==>=<=!=3)邏輯運算符!&&||4)位運算符《》~|^&5)賦值運算符=及其擴展賦值運算符6)條件運算符?:7)逗號運算符,8)指針運算符*&9)求字節(jié)數(shù)運算符sizeof10)強制類型轉(zhuǎn)換運算符(類型)11)分量運算符·—>12)下標(biāo)運算符[]第三十一頁,共四十七頁,2022年,8月28日3.8.2算術(shù)運算符和算術(shù)表達式1.基本算術(shù)運算符+-*/%說明:(1)兩個整數(shù)相除結(jié)果為整數(shù),如5/3=1,如果除數(shù)或被除數(shù)中有一個為負值,多數(shù)機器采取“向零取整”的方法。(2)參與運算的兩個數(shù)中有一個為實數(shù),則結(jié)果為double型。例:6/2.0的結(jié)果為3.0(3)模運算符(或稱求余運算符)兩側(cè)的運算量均為整型量。第三十二頁,共四十七頁,2022年,8月28日2.算術(shù)表達式和運算符的優(yōu)先級與結(jié)合性①用算術(shù)運算符和括號將運算對象(也稱操作數(shù))連接起來,符合C語法規(guī)則的式子,稱C算術(shù)表達式。②表達式求值時,按運算符的優(yōu)先級別依次執(zhí)行。若優(yōu)先次序相同,則按“自左至右”的結(jié)合方向計算。例:
2+12/6*5%3+‘A’第三十三頁,共四十七頁,2022年,8月28日3.強制類型轉(zhuǎn)換運算符可以利用強制類型轉(zhuǎn)換運算符將一個表達式轉(zhuǎn)換成所需類型。
一般形式:(類型名)(表達式)如:(int)x(int)(x+y)
注意:用此方法得到的類型是中間結(jié)果,它并不改變變量原先的類型。第三十四頁,共四十七頁,2022年,8月28日4.自增、自減運算符++i,--i:
在使用i之前,先使i的值加(減)1,即先改值后用。i++,i--:
在使用i之后,再使i的值加(減)1,即先用后改值說明:①自增、自減運算符只能用于變量,而不能用于常量或表達式。②++和--的結(jié)合方向是“從右至左”。
-i++→-(i++)③C語言的表達式中++,--的出現(xiàn),很容易導(dǎo)致錯誤。第三十五頁,共四十七頁,2022年,8月28日例:k=(i++)+(i++)+(i++)
若i的初值為3,在Tc,Msc系統(tǒng)中k=9,i=6例:k=(++i)+(++i)+(++i)
若i的初值為3,在Tc,Msc系統(tǒng)中k=18,i=6例:printf(“%d,%d”,i,i++);若i的初值為3,在上述系統(tǒng)中結(jié)果為:
4,3第三十六頁,共四十七頁,2022年,8月28日
3.9賦值運算符和賦值表達式賦值運算符符號:=
作用:將一個數(shù)據(jù)賦給一個變量。2.賦值時的類型轉(zhuǎn)換問題(1)將實型數(shù)據(jù)(包括單、雙精度)賦給整型變量時,舍棄實數(shù)的小數(shù)部分。(2)整數(shù)賦值給單、雙精度變量時,數(shù)值不變,以浮點數(shù)形式表示。第三十七頁,共四十七頁,2022年,8月28日(3)字符型數(shù)據(jù)賦給整型變量時,放在整型變量的低8位,分兩種情況:
①若所用系統(tǒng)將字符處理為無符號的量或?qū)nsignedchar型變量賦值,則將字符的8位放到整型變量的低8位,高8位補0。
②若系統(tǒng)將字符處理為帶符號的量,若字符最高位為0,則整型變量高8位補0,相反,則全補1。這稱為“符號擴展”,這樣做的目的是使數(shù)值保持不變??唇滩?0頁圖3.11。第三十八頁,共四十七頁,2022年,8月28日(4)帶符號的整型數(shù)據(jù)(int型)賦給長整型變量要進行符號擴展,int數(shù)為正值,則longint型變量的高16位補0,相反補1,整型數(shù)的16位送到long型的低16位。(保持數(shù)據(jù)不變)longint型數(shù)值賦給int型變量時,只需將longint的低16位放入int型變量中(即截斷,有效的只有低16位)。看書教材60頁圖3.13。第三十九頁,共四十七頁,2022年,8月28日
(5)unsignedint型數(shù)據(jù)賦給longint型變量只需高位補0即可。若將一個unsigned類型數(shù)據(jù)賦給一個占字節(jié)相同的整型變量,內(nèi)容原封不動送到非unsigned型變量中,但可能會因超范圍而出錯。
(6)將非unsigned型數(shù)據(jù)賦給長度相同的unsigned型變量,也是原樣照賦。第四十頁,共四十七頁,2022年,8月28日3.復(fù)合的賦值運算符(1)復(fù)合運算符:10種
+=,-=,*=,/=,%=,《=,》=,&=,^=,|=例如:a+=3a=a+3x*=y+8x=x*(y+8)x%=3x=x%3(2)意義:簡化程序,使程序精煉。提高編譯效率。第四十一頁,共四十七頁,2022年,8月28日4.賦值表達式(1)概念:由賦值運算符將一個變量和一個表達式連接起來的式子。(2)一般形式:
<變量><賦值運算符><表達式>求解過程:將賦值運算符右側(cè)的“表達式”的值賦給左側(cè)的變量,賦值表達式的值就是被賦值的變量的值。例a=b=c=5a=5+(c=6)a=(b=4)+(c=6)a=(b=10)/(c=2)a+=a-=a*a(a=12)第四十二頁,共四十七頁,2022年,8月28日3.10逗號運算符和逗號表達式1)逗號運算符又稱順序求值運算符2)一般形式:表達式1,表達式23)求解過程:
先求解表達式1,再求解表達式2,整個表達式的值是表達式2的值。例:a=3*5,a*4a的值為15,表達式的值為60x=(a=3,6*
溫馨提示
- 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度創(chuàng)業(yè)型公司合伙人股權(quán)分配與激勵合同4篇
- 2025年度苗木電商平臺合作服務(wù)合同4篇
- 2025年船員聘用合同范本(含船舶航行安全責(zé)任)4篇
- 2025年度新型綠色建筑項目個人勞務(wù)用工合同2篇
- 二零二五版藕塘水域景觀設(shè)計與建設(shè)承包合同范本4篇
- 二零二五年度環(huán)保產(chǎn)業(yè)園區(qū)建設(shè)合同樣本3篇
- 二零二五年度水產(chǎn)養(yǎng)殖病蟲害防治與生態(tài)保護合同3篇
- 二零二五年度創(chuàng)業(yè)項目社交媒體運營與管理服務(wù)合同3篇
- 二零二五年度智能溫室大棚租賃服務(wù)合同細則2篇
- 2025版綠色農(nóng)業(yè)發(fā)展項目合作社土地流轉(zhuǎn)及用工合作合同4篇
- 2024年安全教育培訓(xùn)試題附完整答案(奪冠系列)
- 神農(nóng)架研學(xué)課程設(shè)計
- 文化資本與民族認同建構(gòu)-洞察分析
- 2025新譯林版英語七年級下單詞默寫表
- 【超星學(xué)習(xí)通】馬克思主義基本原理(南開大學(xué))爾雅章節(jié)測試網(wǎng)課答案
- 《錫膏培訓(xùn)教材》課件
- 斷絕父子關(guān)系協(xié)議書
- 福建省公路水運工程試驗檢測費用參考指標(biāo)
- 2024年中國工業(yè)涂料行業(yè)發(fā)展現(xiàn)狀、市場前景、投資方向分析報告(智研咨詢發(fā)布)
- 自然科學(xué)基礎(chǔ)(小學(xué)教育專業(yè))全套教學(xué)課件
- 《工程勘察資質(zhì)分級標(biāo)準和工程設(shè)計資質(zhì)分級標(biāo)準》
評論
0/150
提交評論