版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
1、第二章,基本數(shù)據(jù)類型,2.1 數(shù)據(jù)類型,構(gòu)造類型,指針類型,空類型void,定義類型typedef,數(shù)據(jù)類型決定: 1. 數(shù)據(jù)占內(nèi)存字節(jié)數(shù) 2. 數(shù)據(jù)取值范圍 3. 其上可進行的操作,常量與變量,語言中的數(shù)據(jù)可分為常量與變量兩大類。在程序的執(zhí)行過程中,值不能被改變的量稱為常量(constant)。在程序執(zhí)行過程中,值可以改變的量稱為變量(variable)。無論是常量還是變量,都有其類型,并且根據(jù)所屬類型規(guī)定常量與變量可進行的運算。 1常量和符號常量 常量的類型是根據(jù)數(shù)據(jù)的書寫形式(即語法形式)來決定的。例如800、1500是整數(shù)類型,800.00、3.14159是浮點類型,a、b是字符類型。
2、 有一種特殊的常量是用標(biāo)識符表示的,稱為符號常量。符號常量常用于幫助記憶,提高程序的可讀性和可維護性。例如程序中要用到圓周率時,可以將圓周率表示為一個符號常量pi并將pi的值設(shè)置為3.14,程序中每次使用圓周率時都用pi表示。如果要提高精度,只要將pi的初始值作修改就可以了(如將3.14改成3.1415926)。,常量與變量,2變量及類型聲明 變量是程序設(shè)計中的有力武器。變量有四個部分組成:變量名、數(shù)據(jù)類型、內(nèi)存地址、以及變量的值。變量用標(biāo)識符來命名,它對應(yīng)著內(nèi)存中的某個區(qū)域,該區(qū)域的位置由內(nèi)存地址指明,區(qū)域中可存放數(shù)據(jù)。我們在程序中通過變量來的名字訪問存放在這個存儲區(qū)域中的數(shù)值。 在程序中使
3、用變量時必須遵循“先聲明、后使用”的原則。變量的類型是由程序員顯式聲明的,聲明方式是類型后面列出變量的名字或逗號分開的變量表: 例如: int i,j,k; 這種聲明變量的語句只是向編譯程序聲明一個變量的名字及其類型, 申請地址空間,并不真正地執(zhí)行程序,這種語句稱為聲明語句或稱為類型定義語句。 變量的值主要通過賦值(assignment)運算改變。變量名=e,右邊是一個可以具體計算出來的值,可以是常量、變量或由常量與變量經(jīng)過若干運算后得出的值,統(tǒng)稱為表達式。 x = x + 1; 另一個典型的賦值運算是利用變量temp交換變量x和y的值:,2.2 保留字、標(biāo)識符,2.2. 標(biāo)識符 用來給變量、
4、數(shù)組、 下劃線開頭的字母、數(shù)字、下劃線串; 標(biāo)識符可以為任意長度,但一般只能識別31個字符; 區(qū)分大小寫 命名時,應(yīng)注意P15 2.2.4 歸納為:以字母或下劃線開頭的由字母、數(shù)字或下劃線組成的串。 2.2.2 保留字 C系統(tǒng)中有特殊含義和專門用途的標(biāo)識符,稱保留字(reserved word)或關(guān)鍵字(key word)。P15,2.3 基本數(shù)據(jù)類型,2.3.1數(shù)據(jù)的內(nèi)部表示 整數(shù)的內(nèi)部表示 作為有符號數(shù)時,每一種整數(shù)的最高位作為符號位,作為無符號數(shù)時,每一種整數(shù)的最高位是該數(shù)據(jù)數(shù)值表示的一部分(補碼表示) 。 整數(shù)最高位(n-1) 最低位(0) 有符號數(shù)的符號位 實數(shù)的內(nèi)部表示,階符 階碼
5、 數(shù)符 尾數(shù)(定點小數(shù)),2.3.2 字符型數(shù)據(jù),2.3.2.1 字符型常量 字符常量:A 、 a 、5、 字符串常量:“Quick C ” 、 “ANSI C 標(biāo)準(zhǔn)” 轉(zhuǎn)義字符: n、0、057 xfd 參見 P.19 表 2.5,語言預(yù)定義的轉(zhuǎn)義字符, 轉(zhuǎn)義字符 ASCII碼 含 義 a 0 x07 響鈴符(BEL-Bell) n 0 x0A 換行符(LF-LineFeed) t 0 x09 水平制表符(將光標(biāo)移動至第九列) v 0 x0B 垂直制表符(將光標(biāo)移動至第九行) b 0 x08 回退符(將光標(biāo)往前移動一列) r 0 x0D 回車符(將光標(biāo)移動到行首) f 0 x0C 換頁符(將
6、光標(biāo)移動到下一頁首位) 0 x5C 反斜線( ) ? 0 x3F 問號(? ) 0X27 單引號() “ 0X22 雙引號(”“” ) ooo 0 x00-0 xff 八進制字符常數(shù) xhh 0 x00-0 xff 十六進制字符常數(shù) ,語言預(yù)定義的轉(zhuǎn)義字符,字符常量的完整表示,字符 其中: 引號內(nèi)的字符有兩類 可顯示字符: 轉(zhuǎn)義字符: 如前表2.5所列舉的。 例如: a, n, , t, 234, x59 都是C語言允許的字符常量。,指的是ASCII碼表中除單引號、反斜線和換行以外的所有可見字符。,2.3.2 .2字符變量,【例】 main( ) char c1,c2; c1=A;c2=B;
7、printf(“c1=%c c2=%cn”,c1,c2); . 字符量的存儲 字符 A 字節(jié) 2. 字符串的存儲 字串 “ANSI C ” ,0的ASCII碼值為0,65,0 1 0 0 0 0 0 1,65 78 83 73 32 67 0 占7個字節(jié),A N S I C,3. 定義 4. 賦值 char c=0; c=a; c=“a”; 錯! c=“IBM”; 錯! 5. 運算 char 型 與 int 型通用與互換. 大小寫轉(zhuǎn)換, 加密.,2.3.3 整數(shù)類型數(shù)據(jù),2.3.2.1 整型常量 十進制 ddd U| u 八進制 0OOO + 整型后綴 十六進制0XHHH L| l 例:123
8、,0123,0 x123 1,1l,0 xffffu,2.3.3 .2 整型變量,.以int定義 2.可以加修飾前綴 在語言中,整型數(shù)據(jù)的內(nèi)部表示一般采用補碼形式。整數(shù)有三種不同的尺寸:位的字符整數(shù)、16位的短整數(shù)和32長整數(shù)。 3.舉例,2.3.4 浮點類型數(shù)據(jù),2.3.4.1 浮點常量 小數(shù)形式 F| f + 整型后綴 指數(shù)形式 L| l 例: 2.3, -0.003, 3e+5, .234e-2, 3.14L, 6.78f 等都是C允許的浮點常量。,2.3.4 .2浮點類型變量,. 以float、double定義 2. 可以加修飾前綴 long 3. 舉例 聲明浮點變量或雙精度變量分別用
9、保留字float和double開頭,可以加入類型修飾符。例如: float balance; /聲明了一個浮點變量balance double weight=0; /聲明了一個雙精度變量weight并初始化為0 long double distance; /聲明了一個長雙精度變量distance 根據(jù)表2.3,編譯程序會為變量balance分配4個字節(jié),為變量weight分配8個字節(jié),為變量distance分配10個字節(jié)。,2.4 運算符和表達式 2.4.1 運算符 一元運算符 二元運算符 三元運算符( ? : ) 算術(shù)運算符: + 、- 、* 、/ 、%、+、- 關(guān)系運算符: = 條件運算符
10、: ? : 求字節(jié)運算符: sizeof( ),2.4 運算符和表達式,關(guān)于算術(shù)運算符的幾點說明: 1. % “取模(求余)” 運算符只能用于整型 2. / 當(dāng)兩個操作數(shù)都是整數(shù)時,表示“整除” 如: 15/2=7 16/3=5 1/3=0 3. k- - k+ - - k + k 1) 單獨使用時,效果一樣 k=3; +k; k+; 2) 作為運算元素和其它一起參加運算時,結(jié)果不 一樣 例如: k=4 ; x=5; +k+x=10 k+ +x=9,2.4 運算符和表達式 2.4.2 表達式 C表達式泛義,因而運用靈活。 main() /*國際象棋問題*/ int i ; float p=,
11、s=1 ; for(i=1 ; i64 ; i+) /* p*=2 , s+=p; */ p*=2 ; s+=p ; printf(“s=%f”,s); /*逗號表達式、復(fù)合賦值、表達式與語句雙重形式*/,2.4 運算符和表達式,1.算術(shù)表達式 int a ,b,c; a=10;b=20;c=a+b; a=a+b a+=b; a=a*k a*=k; += - = *= /= %= 等等復(fù)合賦值語句 2.賦值表達式 x=5; a=(b=c); a=b=c; a=(b=5)+(c=4); 3.關(guān)系表達式 xy+1 a!=b+1 x= =0 關(guān)系運算的結(jié)果是整型 1 表示真 0 表示假 1327 結(jié)
12、果為 0 13=21 結(jié)果為1,2.4 運算符和表達式,4.邏輯表達式 (例exif.c),2.4 運算符和表達式,7.位運算符及位運算: 位運算符: 1 ) 位求反 (一元) 2 ) prinf (“ %f ”, ( float) 2/3 ); prinf (“ %f ”, (float)(2/3);,2.7 數(shù)組和指針,2.7.1 數(shù)組 2.7.2 指針 2.7.3 指針的簡單用法,變量和常量只能用來表示少量相互之間沒有內(nèi)在聯(lián)系的數(shù)據(jù),大量的成批數(shù)據(jù)要使用數(shù)組(array)來表示。數(shù)組是具有一定順序關(guān)系的若干變量的集合體。組成數(shù)組的變量稱為數(shù)組的元素,簡稱元素。C語言中數(shù)組的元素變量用數(shù)組
13、名后面跟有方括號“ ”的下標(biāo)表示,如: a2, b23, name100, y234,這里:a, b, name, y 是用戶命名的數(shù)組名。只有一個方括號的數(shù)組稱為一維數(shù)組,帶有兩個、三個方括號的是二維數(shù)組、三維數(shù)組。 C語言數(shù)組的下標(biāo)是從0開始,下標(biāo)必須是整數(shù)型的常量和變量。注:C不允許定義變長數(shù)組。 數(shù)組在內(nèi)存中存儲時,是按下標(biāo)遞增的順序連續(xù)存儲各數(shù)組元素的值。數(shù)組名代表了數(shù)組所占有的這一片連續(xù)存儲區(qū)域的首地址。數(shù)組的首地址也就是數(shù)組第一個元素的地址。如上面的數(shù)組名為a的數(shù)組首地址是a或 static char name200; / static : 靜態(tài)存儲類別 第一條說明語句中,定義了
14、兩個整型數(shù)組,其中一維a 數(shù)組共用100個元素,即:a0,a1,a2,a99。二維num 數(shù)組有3行4列,共3*4=12個元素。存儲類別采用隱含類別。num數(shù)組的結(jié)構(gòu)見圖2.5。第二條語句定義了字符型的name數(shù)組,有200個元素,并定義采用靜態(tài)存儲類別。,注:在定義數(shù)組的同時,可以對數(shù)組進行初始化。 int b5= 1,3,2,4,6; 這時,定義整型b數(shù)組有5個元素,同時給他們賦予了初始值, 即:b0=1,b1=3,b2=2,b3=4,b4=6。 若對數(shù)組進行初始化的數(shù)據(jù)的個數(shù)與數(shù)組元素的個數(shù)相同時,則定義數(shù)組時的元素個數(shù)可以省略,即下面的定義與上面的定義是等價的: int b = 1,3
15、,2,4,6; 【例2.10】數(shù)組的定義和初始化舉例。 main() int a5=1,3,5,7,9,b23; b02=10;b12=100; printf(array:%d%d%d%d%dn, a0,a1,a2,a3,a4); printf(b02=%dn,b02); printf(b12=%dn,b12); ,2.7.2指針 指針也是一種變量,它和其他變量一樣也具有三個要素:指針的名字、指針的類型、指針的值。它也需要占用存儲空間。但它與其它普通變量有著不同之處,指針的存儲空間里存放的是另一個變量的地址。而普通變量的存儲空間里存放的該變量自己的數(shù)值。指針的類型不是它自己的類型,而是它指向的
16、對象的數(shù)據(jù)類型。在C語言中,根據(jù)指針?biāo)傅膶ο蟮牟煌?,指針有不同的說明和使用形式。因此分為指向一般變量的指針、指向數(shù)組的指針、指向結(jié)構(gòu)體的指針、指向函數(shù)的指針以及指向指針的指針等。在第六章之前,我們只學(xué)習(xí)最簡單最基本的指向變量的和指向一維數(shù)組的指針。,指針的定義:主要體現(xiàn)在要說明它是一個指針變量,即在變量的名前加上“ *”,這就使得指針變量不同于其它變量;還要說明它將要指向的對象的數(shù)據(jù)類型,(請注意指針本身是不具有什么類型的,指針的類型是由系統(tǒng)定義的。) 其定義方式是: 對象的類型 *指針變量名;,例如: int *px; float *py; char *pc; 在此定義了三個指針變量,一個
17、指向整型變量的px指針變量,一個指向?qū)嵭妥兞康膒y指針變量,和一個指向字符型變量的pc指針變量。,指針指向某個對象,定義指針的目的是要讓它與某個對象(變量)聯(lián)系起來,即讓指針指向某個變量,又兩中方式: 1.用賦值語句通過給指針賦值使得指針指向某個變量 例如:int *px,x; float *py,y; char *pc,c; px= 這里px指針指向x,py指針指向y,pc指針指向c,2.用初始化的方式,讓指針指向某個變量 我們知道,初始化是在說明變量的同時賦予的初始值,故稱為初始化。由于指針保存的是地址,因此初始化時賦予的初始值必須是地址量。初始化的方式是: 對象的類型 *指針變量名=初始地址值; 如上面的表示可改為: int x, *px = 這樣既完成了定義指針變量,同時也使得指針得到了初始值即所指向的對象的地址。,指向一般變量的指針,對其定義及賦值操作在前面已又介紹,這里只通過例子說明: main() int x,y,*p1= 程序中p2指針在初始化時是指向變量y的(如圖的虛線箭頭所示),后來用賦值方式將p2的指向改為與指針p1同樣的指向,即都指向x,因此打印*p2值實際上是x 的值。,指向一維數(shù)組的指針 例如有如下定義:int a10,*p; 讓指針變量p指向數(shù)組a(即p指向數(shù)組首地址)的方式為: p=a; 或 p= ,程序輸出結(jié)果是: a0=10 a1=20 a
溫馨提示
- 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)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2026年電力系統(tǒng)運維安全規(guī)程
- 南城縣工創(chuàng)發(fā)展集團有限公司招聘考試備考試題及答案解析
- 2025年南安小學(xué)語文教招筆試及答案
- 2025年周三面試事業(yè)編武漢考試及答案
- 2026年安全事故的警鐘建筑工程案例
- 2026年工程項目中的環(huán)境友好型設(shè)計
- 2025年永年區(qū)事業(yè)單位考試真題及答案
- 2025年鹽源人事考試及答案
- 2025年機械類秋招筆試題庫及答案
- 2026年特殊教育支持策略培訓(xùn)
- DB34T 4506-2023 通督調(diào)神針刺療法應(yīng)用指南
- 02-輸電線路各階段設(shè)計深度要求
- 《認(rèn)識時鐘》大班數(shù)學(xué)教案
- 新疆維吾爾自治區(qū)伊犁哈薩克自治州2023-2024學(xué)年八年級下學(xué)期期中數(shù)學(xué)試題
- T-CI 178-2023 高大邊坡穩(wěn)定安全智能監(jiān)測預(yù)警技術(shù)規(guī)范
- THHPA 001-2024 盆底康復(fù)管理質(zhì)量評價指標(biāo)體系
- 傷口的美容縫合減少瘢痕的形成
- MSOP(測量標(biāo)準(zhǔn)作業(yè)規(guī)范)測量SOP
- 顱鼻眶溝通惡性腫瘤的治療及護理
- 人教版四年級《上冊語文》期末試卷(附答案)
- 四川山體滑坡地質(zhì)勘察報告
評論
0/150
提交評論