C語言程序設(shè)計(jì)譚浩強(qiáng)重點(diǎn)筆記_第1頁
C語言程序設(shè)計(jì)譚浩強(qiáng)重點(diǎn)筆記_第2頁
C語言程序設(shè)計(jì)譚浩強(qiáng)重點(diǎn)筆記_第3頁
C語言程序設(shè)計(jì)譚浩強(qiáng)重點(diǎn)筆記_第4頁
C語言程序設(shè)計(jì)譚浩強(qiáng)重點(diǎn)筆記_第5頁
已閱讀5頁,還剩23頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、.C語言設(shè)計(jì)學(xué)習(xí)筆記早晨:06:40起床07:2008:20英語 1小時(shí) 新概念英語(單詞、語法、聽讀背)大學(xué)英語(單詞、語法、聽讀背)上午:08:3010:30計(jì)算機(jī)基礎(chǔ) 2小時(shí)10:5011:30計(jì)算機(jī)科學(xué)技術(shù)導(dǎo)論計(jì)算機(jī)組成原理微機(jī)原理及接口技術(shù)Intel微處理器結(jié)構(gòu)編程與接口深入理解計(jì)算機(jī)系統(tǒng)80x86匯編語言程序設(shè)計(jì)8086-8088宏匯編語言程序設(shè)計(jì)教程BIOS研發(fā)技術(shù)剖析自己動(dòng)手寫操作系統(tǒng)操作系統(tǒng)原理Windows操作系統(tǒng)原理Windows內(nèi)部原理系列Windows程序內(nèi)部運(yùn)行原理計(jì)算機(jī)網(wǎng)絡(luò)第五版中午:12:0002:00午休下午:02:3004:30計(jì)算機(jī)應(yīng)用及編程Windows

2、用戶管理指南、AD配置指南、網(wǎng)絡(luò)專業(yè)指南、Windows即學(xué)即會(huì)教程Windows下32位匯編語言程序設(shè)計(jì)、C#編程晚上:05:3008:00鍛煉、晚餐08:0009:00輔導(dǎo)09:0011:00專業(yè)基礎(chǔ) 2小時(shí)大學(xué)數(shù)學(xué)、大學(xué)物理、電機(jī)及拖動(dòng)、電力電子技術(shù)、通信技術(shù)11:30休息.目 錄第一章 C語言概述- 1 -1.1 C程序結(jié)構(gòu)特點(diǎn)16- 1 -1.2 C程序上機(jī)步驟17- 1 -第二章 程序的靈魂算法23- 2 -2.1 算法24- 2 -2.2 算法的三種基本結(jié)構(gòu)- 2 -2.3 結(jié)構(gòu)化程序設(shè)計(jì)方法42- 2 -第三章 數(shù)據(jù)類型 運(yùn)算符與表達(dá)式48- 2 -3.1 C語言的基本元素48

3、- 2 -3.2 C的數(shù)據(jù)類型48- 2 -3.3 常量與變量48- 3 -3.4 基本類型- 3 -3.5 變量63- 4 -3.6 不同類型數(shù)據(jù)間的混合運(yùn)算- 5 -3.7 函數(shù)的調(diào)用過程(補(bǔ)充)- 5 -第四章 最簡(jiǎn)單的C程序設(shè)計(jì)順序程序設(shè)計(jì)77- 5 -4.1 字符數(shù)據(jù)的輸入輸出- 5 -第五章 選擇結(jié)構(gòu)的程序設(shè)計(jì)97- 6 -第六章 循環(huán)結(jié)構(gòu)程序設(shè)計(jì)- 6 -6.1 語句標(biāo)號(hào)- 6 -6.2 break語句和continue語句- 6 -第七章 數(shù)組132- 6 -7.1 構(gòu)造類型- 6 -7.2 數(shù)組133- 6 -7.3 二維數(shù)組- 6 -7.4 字符串字符數(shù)組- 7 -7.5

4、字符串處理函數(shù) #include - 7 -第八章 函數(shù)153- 8 -8.1 c程序的結(jié)構(gòu)154- 8 -8.2 函數(shù)調(diào)用參數(shù)傳遞- 8 -8.3 函數(shù)變量的作用范圍- 8 -8.4 變量的存儲(chǔ)類別- 8 -第九章 預(yù)處理命令197- 9 -9.1 預(yù)編譯命令作用- 9 -第十章 指針211- 10 -10.1 變量的訪問方式- 10 -10.2 指針變量- 10 -第十一章 結(jié)構(gòu)體270- 11 -11.1 結(jié)構(gòu)體270- 11 -11.2 聲明結(jié)構(gòu)體類型變量的方法271- 11 -11.3 結(jié)構(gòu)體變量引用273- 11 -11.4 結(jié)構(gòu)體變量初始化- 12 -11.5 結(jié)構(gòu)體數(shù)組275-

5、 12 -11.6 結(jié)構(gòu)體類型指針- 12 -11.7 鏈表283- 12 -11.8 共用體 297- 13 -11.9 枚舉類型301- 13 -11.10 用typedef定義的類型304- 14 -第十二章 位運(yùn)算308- 14 -12.1 位段 315- 14 -第十三章 文件319- 14 -13.1 文件319- 14 -13.2 文件的分類319- 15 -13.3 C語言對(duì)文件的處理方法319- 15 -13.4 文件結(jié)構(gòu)體類型321- 15 -13.5 文件結(jié)構(gòu)體數(shù)組和指針321- 16 -13.6 文件的操作321- 16 -13.7 文件的定位333- 17 -13.8

6、 出錯(cuò)檢測(cè)335- 18 -13.9 小結(jié)336- 18 -第十四章 C+對(duì)C的擴(kuò)充 338- 19 -14.1 C+的特點(diǎn)338- 19 -14.2 C+的輸入輸出 339- 19 -14.3 C+的輸出cout- 19 -14.4 C+的輸入 cin 341- 21 -14.4 函數(shù)的重載342- 21 -14.5 帶缺省參數(shù)的函數(shù)344- 21 -14.6 變量的引用類型345- 22 -14.7 內(nèi)置函數(shù) 348- 23 -14.8 作用域運(yùn)算符349- 24 -第一章 C語言概述1.1 C程序結(jié)構(gòu)特點(diǎn)161、C程序的基本構(gòu)件函數(shù)。2、一個(gè)函數(shù)由函數(shù)首部和函數(shù)體兩部分構(gòu)成。 函數(shù)首部一

7、般包括函數(shù)類型、函數(shù)名、函數(shù)參數(shù)等。 函數(shù)體一般包括聲明部分和執(zhí)行部分。其中:在聲明部分中定義所用到的變量;執(zhí)行部分則由若干個(gè)語句組成。3、C程序只有一個(gè)main函數(shù),且總是從main函數(shù)開始執(zhí)行。4、C語言語句必須以“;”結(jié)束。5、用/* */作為注釋。6、C編譯器一般自頂向下順序編譯C源程序,如果被調(diào)函數(shù)定義在主調(diào)函數(shù)之后位置時(shí),要在主調(diào)函數(shù)前,給出被調(diào)函數(shù)的原型說明。以便編譯器在編譯被調(diào)函數(shù)的調(diào)用語句時(shí),對(duì)調(diào)用語句進(jìn)行參數(shù)檢查。如果不進(jìn)行原型說明,則無法通過編譯檢查。原型說明:類型說明 函數(shù)名(參數(shù)類型,參數(shù)類型,)7、頭文件頭文件包含了C語言的標(biāo)準(zhǔn)函數(shù)庫的原型說明。C語言通過使用#in

8、clude 預(yù)處理命令,將庫函數(shù)的原型說明插入到源文件中。1.2 C程序上機(jī)步驟171、編輯源文件 .c;2、編譯成目標(biāo)文件.obj;3、連接將目標(biāo)程序和庫函數(shù)及其他目標(biāo)程序連接起來,生產(chǎn)可執(zhí)行文件,文件擴(kuò)展名為.exe;4、執(zhí)行。第二章 程序的靈魂算法232.1 算法241、算法指為求解某一問題而采用的具體方法和步驟。2、兩類算法數(shù)值運(yùn)算算法和非數(shù)值運(yùn)算算法3、算法的特性有窮性、確定性、有效性等4、算法描述文字描述法(如偽代碼描述算法)、圖形描述法(如流程圖和NS流程圖描述算法)。2.2 算法的三種基本結(jié)構(gòu)順序、選擇、循環(huán)2.3 結(jié)構(gòu)化程序設(shè)計(jì)方法421、自頂向下首先對(duì)問題進(jìn)行分析,確定算法

9、思路。2、逐步細(xì)化根據(jù)算法思路,制定原始算法流程,并不斷細(xì)化流程。3、模塊設(shè)計(jì)分解算法流程,將功能相對(duì)獨(dú)立的部分劃分為一個(gè)模塊。4、結(jié)構(gòu)化編碼利用高級(jí)語言正確實(shí)現(xiàn)3種基本結(jié)構(gòu)。第三章 數(shù)據(jù)類型 運(yùn)算符與表達(dá)式483.1 C語言的基本元素481、符號(hào)集C語言使用的基本符號(hào)。2、標(biāo)識(shí)符用來標(biāo)記常量、變量、函數(shù)及文件名字的字符序列。3、關(guān)鍵字C程序規(guī)定的,具有特定含義、專門用作語言特定成分的一類標(biāo)識(shí)符。ANSI推薦的C語言關(guān)鍵字是32個(gè)。關(guān)鍵字全部應(yīng)該小寫。3.2 C的數(shù)據(jù)類型48數(shù)據(jù)是操作的對(duì)象,數(shù)據(jù)類型是指數(shù)據(jù)的內(nèi)在表現(xiàn)形式。如(數(shù)據(jù)代碼、存儲(chǔ)、運(yùn)算)。1、基本類型:整型、字符型、實(shí)型。2、構(gòu)造

10、類型:在基本類型的基礎(chǔ)上,按照某種構(gòu)成規(guī)則構(gòu)造而成的類型。數(shù)組、結(jié)構(gòu)體、共用體、枚舉型。3、指針類型:用于存儲(chǔ)地址的一類數(shù)據(jù)類型。 4、空類型:編譯器根據(jù)變量的數(shù)據(jù)類型,給變量分配存儲(chǔ)單元。3.3 常量與變量481、符號(hào)常量符號(hào)常量在其作用域內(nèi)不能改變,也不能被賦值。#define 符號(hào)常量(大寫) 常量2、變量變量由變量名和變量值標(biāo)識(shí)。數(shù)據(jù)類型 變量; 變量名實(shí)際上是一個(gè)符號(hào)地址,編譯連接程序時(shí)給每個(gè)變量名分配一個(gè)內(nèi)存地址,當(dāng)程序訪問變量值時(shí),實(shí)際上是通過變量名找到相應(yīng)的內(nèi)存地址,從其存儲(chǔ)單元中讀取數(shù)據(jù)。3.4 基本類型1、整形數(shù)據(jù)在內(nèi)存中的存放,是以補(bǔ)碼形式存放的。2、實(shí)型數(shù)據(jù):?jiǎn)尉?雙

11、精度。 在內(nèi)存中以指數(shù)形勢(shì)存放。 若數(shù)據(jù)超過有效位,則超過C語言規(guī)定有效位的數(shù)據(jù)將被舍去,故產(chǎn)生誤差。3、字符型數(shù)據(jù):用一個(gè)字節(jié)存儲(chǔ)單元存儲(chǔ)。即將字符的ASCII碼存儲(chǔ)到內(nèi)存單元中。 用單引號(hào)括起來的一個(gè)字符。 轉(zhuǎn)義字符特殊字符常量或者控制字符常量,它們都以“”開頭。 Char、unsigned char區(qū)別:char用7位數(shù)表示,最大表示編碼為127的字符;unsigned char用8位數(shù)表示,最大表示編碼為255的字符。 字符數(shù)據(jù)與整型數(shù)據(jù)可以相互賦值。 字符數(shù)據(jù)可以以字符數(shù)據(jù)輸出,也可以以整型數(shù)據(jù)形式輸出。4、字符串常量:C語言中,必須是用字符數(shù)組來保存字符串常量。在內(nèi)存中順序存儲(chǔ)。

12、用一對(duì)雙引號(hào)括起來的字符序列。 每個(gè)字符串常量結(jié)尾以一個(gè)字符0作為結(jié)束標(biāo)記。(一般由系統(tǒng)自動(dòng)加上)。3.5 變量631、自動(dòng)變量在函數(shù)體內(nèi)或復(fù)合語句中定義的非靜態(tài)變量稱為自動(dòng)變量。 C語言編譯時(shí),不對(duì)自動(dòng)變量賦初值。 當(dāng)程序執(zhí)行到自動(dòng)變量的作用域時(shí),程序才為自動(dòng)變量分配空間。當(dāng)定義自動(dòng)變量的函數(shù)或復(fù)合語句執(zhí)行結(jié)束后,程序釋放自動(dòng)變量的存儲(chǔ)空間。 自動(dòng)變量保存在程序的動(dòng)態(tài)存儲(chǔ)空間。2、靜態(tài)局部變量在函數(shù)體內(nèi)或復(fù)合語句中用static定義的變量稱為靜態(tài)局部變量。 C語言編譯時(shí),對(duì)靜態(tài)局部變量賦初值。 靜態(tài)局部變量存儲(chǔ)在程序的靜態(tài)存儲(chǔ)空間。 靜態(tài)局部變量在程序的整個(gè)運(yùn)行期間均占用程序的靜態(tài)存儲(chǔ)空間,

13、直到程序退出后才釋放存儲(chǔ)空間。3、寄存器變量用register聲明的變量。4、外部變量(全局變量)在函數(shù)的外部定義的變量。它的作用域是從定義處開始,到本程序文件的末尾結(jié)束,在此作用域內(nèi),全局變量可以為程序的各個(gè)函數(shù)引用。 C語言編譯時(shí),對(duì)全局變量賦初值。 全局變量存儲(chǔ)在程序的靜態(tài)存儲(chǔ)空間。 全局變量在程序的整個(gè)運(yùn)行期間均占用程序的靜態(tài)存儲(chǔ)空間,直到程序退出后才釋放存儲(chǔ)空間。注意:(1)當(dāng)引用本源文件后面定義的全局變量或引用在其他源文件中定義的全局變量是,應(yīng)在引用位置前,利用extern 聲明該全局變量,以告訴編譯器編譯時(shí),引用的是一個(gè)外部變量,在編譯器連接時(shí),將引用的外部變量的作用域擴(kuò)展到本文

14、件extern 聲明處。(2)用static 聲明的全局變量,不能被其他文件引用。注意:(1)變量聲明分為定義性聲明和引用性聲明。(2)一般把建立存儲(chǔ)空間的聲明稱為變量定義,把不需要建立存儲(chǔ)空間的聲明成為變量聲明。3.6 不同類型數(shù)據(jù)間的混合運(yùn)算 不同類型數(shù)據(jù)進(jìn)行混合運(yùn)算時(shí),不同類型的數(shù)據(jù)要先轉(zhuǎn)換成同一類型,按照類型級(jí)別由低到高(char,shortintunsignedlongdouble;floatdouble)的順序進(jìn)行轉(zhuǎn)換。 強(qiáng)制類型轉(zhuǎn)換(類型名) 表達(dá)式。強(qiáng)制類型轉(zhuǎn)換也就是將存儲(chǔ)數(shù)據(jù)的內(nèi)存單元強(qiáng)制轉(zhuǎn)換為另一種數(shù)據(jù)類型的單元大小。即強(qiáng)制將存放數(shù)據(jù)的內(nèi)存單元改變。 賦值時(shí)進(jìn)行類型轉(zhuǎn)換:將

15、數(shù)據(jù)復(fù)制給變量時(shí),將會(huì)將數(shù)據(jù)強(qiáng)制轉(zhuǎn)換為要賦值變量的類型。一般短類型轉(zhuǎn)換為長(zhǎng)類型時(shí),進(jìn)行符號(hào)擴(kuò)展;長(zhǎng)類型轉(zhuǎn)換為短類型時(shí),僅賦值低位,難以保證數(shù)據(jù)的正確性。3.7 函數(shù)的調(diào)用過程(補(bǔ)充) C函數(shù)其實(shí)就是一個(gè)程序模塊。 C函數(shù)在編譯時(shí),單獨(dú)編譯成一個(gè)指令模塊,在函數(shù)模塊開始處定義保護(hù)現(xiàn)場(chǎng)指令,將用到的CPU寄存器壓入堆棧。在返回時(shí)定義了恢復(fù)現(xiàn)場(chǎng)指令,將堆棧數(shù)據(jù)恢復(fù)到CPU寄存器。 在調(diào)用函數(shù)時(shí),一般利用堆棧傳遞輸入?yún)?shù);利用EAX傳遞輸出參數(shù),注意在函數(shù)調(diào)用完成后,要維持堆棧平衡,且函數(shù)返回輸出參數(shù)在EAX中,在使用輸出參數(shù)前,不要改變EAX的值。第四章 最簡(jiǎn)單的C程序設(shè)計(jì)順序程序設(shè)計(jì)774.1 字

16、符數(shù)據(jù)的輸入輸出1、C語言沒有輸入輸出語句,IO操作通過調(diào)用系統(tǒng)函數(shù)實(shí)現(xiàn)。2、在程序的開頭,要有:#include “stdio.h”或 #include ,預(yù)定義語句,用來引用頭文件,在編譯時(shí)將頭文件中的函數(shù)原型聲明添加到源文件中。stdio.h 輸入輸出語句string.h 字符串操作函數(shù)math.h 定義數(shù)字函數(shù)ctype.h 字符函數(shù)庫intrins.h 內(nèi)部函數(shù)stdlib.h 標(biāo)準(zhǔn)函數(shù)庫absacc.h 絕對(duì)地址訪問reg.h 專用寄存器文件默認(rèn)輸出設(shè)備顯示屏,默認(rèn)輸入設(shè)備鍵盤。第五章 選擇結(jié)構(gòu)的程序設(shè)計(jì)第六章 循環(huán)結(jié)構(gòu)程序設(shè)計(jì)6.1 語句標(biāo)號(hào)語句標(biāo)號(hào)用于定義程序中的某個(gè)位置,用標(biāo)

17、識(shí)符表示,不能只用數(shù)字。6.2 break語句和continue語句1、break語句結(jié)束循環(huán)語句和switch語句。2、continue 結(jié)束本次循環(huán),即忽略循環(huán)體中剩余的語句。第七章 數(shù)組1327.1 構(gòu)造類型構(gòu)造類型是由基本類型按照一定規(guī)則構(gòu)造而成的。(如數(shù)組、結(jié)構(gòu)體、共同體、枚舉型)構(gòu)造類型的每個(gè)分量(元素),是一個(gè)變量,它可以是一個(gè)簡(jiǎn)單類型或者構(gòu)造類型。構(gòu)造類型的分量占用相鄰的存儲(chǔ)空間。7.2 數(shù)組1331、數(shù)組是有序數(shù)據(jù)的集合,數(shù)據(jù)元素類型相同,順序存儲(chǔ),占用相鄰的存儲(chǔ)空間。2、數(shù)組數(shù)組必須先定義后引用。靜態(tài)數(shù)組變量定義時(shí)編譯器自動(dòng)初始化數(shù)據(jù)元素為0,動(dòng)態(tài)數(shù)組變量在程序執(zhí)行時(shí)分配存

18、儲(chǔ)空間,在未被賦值初始化之前其值隨機(jī)。3、C語言只能逐個(gè)引用數(shù)組元素,不能一次引用整個(gè)數(shù)組。4、數(shù)組引用是“數(shù)組名+下標(biāo)”引用,數(shù)組下標(biāo)均為整數(shù)。如a2。7.3 二維數(shù)組1、數(shù)組元素為數(shù)組。2、在內(nèi)存中,C語言的二維數(shù)組中數(shù)組元素的存放順序是按行存放的。3、二維數(shù)組引用是“數(shù)組名+下標(biāo)+下標(biāo)”。如a12。7.4 字符串字符數(shù)組1、一般用0來標(biāo)識(shí)字符串結(jié)尾。0占用一個(gè)字符變量空間。2、用字符串賦值字符數(shù)組時(shí),C編譯器在字符串后自動(dòng)加0賦給字符數(shù)字。3、字符數(shù)組可以一次引用整個(gè)字符串?dāng)?shù)組。如整個(gè)字符串(數(shù)組)的輸入輸出,用%s格式,且在輸入字符數(shù)組時(shí),用數(shù)組名代表數(shù)組的首地址,對(duì)于二維數(shù)組,僅僅寫

19、行下標(biāo)不寫列下標(biāo),也可以代表給行數(shù)組的首地址。在用%s輸入輸出字符串?dāng)?shù)組時(shí),遇到0結(jié)束。7.5 字符串處理函數(shù) #include 1、gets(字符數(shù)組名)從鍵盤輸入一個(gè)字符串(以回車結(jié)束),并返回字符數(shù)組的起始地址。如get(str)。2、puts(字符數(shù)組名/字符串)將數(shù)組中的字符串(0結(jié)尾的字符序列)輸出到終端上,輸完換行。如puts(str),puts(“ok”)。3、strcpy(目的字符數(shù)組1名,源字符串/字符數(shù)組2名)拷貝時(shí),將“0”一起拷貝過去。4、strcat(字符數(shù)組1名,字符串/字符數(shù)組2名)將字符串/字符數(shù)組2連接到字符數(shù)組1中。連接時(shí),編譯器去掉字符數(shù)組1的“0”。5

20、、strcmp(字符串/字符數(shù)組1名,字符串/字符數(shù)組2名)比較字符串/字符數(shù)組1名 和字符串/字符數(shù)組2名的大小。字符串/字符數(shù)組1字符串/字符數(shù)組2,返回正數(shù)字符串/字符數(shù)組1=字符串/字符數(shù)組2,返回0字符串/字符數(shù)組1字符串/字符數(shù)組2,返回負(fù)數(shù)。第八章 函數(shù)1538.1 c程序的結(jié)構(gòu)1541、一個(gè)C程序可以分為若干個(gè)函數(shù)。2、每個(gè)程序只能有一個(gè)主函數(shù),C程序的執(zhí)行從main函數(shù)開始,從main函數(shù)結(jié)束。3、函數(shù)間可以互相調(diào)用,但主函數(shù)不能被調(diào)用。4、從用戶角度看,函數(shù)可分為標(biāo)準(zhǔn)函數(shù)(庫函數(shù))和自定義函數(shù)。其中,編譯器僅編譯自定義函數(shù),在連接時(shí)才將標(biāo)準(zhǔn)庫函數(shù)的目標(biāo)代碼連接到程序。5、一

21、個(gè)C源程序由一個(gè)或多個(gè)文件構(gòu)成,一個(gè)源程序文件是一個(gè)編譯單位。8.2 函數(shù)調(diào)用參數(shù)傳遞1、值傳遞如數(shù)值形參。此時(shí),將實(shí)參值復(fù)制壓棧,被調(diào)函數(shù)對(duì)復(fù)制到棧中的數(shù)值進(jìn)行操作,不改變?cè)瓉韺?shí)參值。2、地址傳遞如數(shù)組形參(指針形參),此時(shí),將實(shí)參數(shù)組的首地址壓棧,被調(diào)函數(shù)引用實(shí)參數(shù)組的首地址,找到實(shí)參數(shù)組,對(duì)實(shí)參數(shù)組進(jìn)行操作,改變實(shí)參數(shù)組值。即形參數(shù)組和實(shí)參數(shù)組共享同一單元。8.3 函數(shù)變量的作用范圍1、局部變量在定義局部變量的范圍內(nèi)有效。當(dāng)局部變量重名時(shí),有效范圍小的優(yōu)先。 在函數(shù)內(nèi)部定義局部變量 函數(shù)的形式參數(shù) 在某個(gè)復(fù)合語句中定義的變量。2、全局變量在函數(shù)之外定義的變量。有效范圍是從定義變量的位置開

22、始到源文件結(jié)束。8.4 變量的存儲(chǔ)類別變量的存儲(chǔ)類別,即生存期。內(nèi)存中供用戶使用的存儲(chǔ)空間包括:程序區(qū)、靜態(tài)存儲(chǔ)區(qū)、動(dòng)態(tài)存儲(chǔ)區(qū)。1、靜態(tài)存儲(chǔ)區(qū)在編譯時(shí)分配空間,在程序運(yùn)行完后才釋放存儲(chǔ)空間。存儲(chǔ)靜態(tài)局部變量和全局變量。 局部靜態(tài)變量在編譯時(shí)賦初值,在執(zhí)行時(shí)可改變?cè)撝?,但該存?chǔ)空間一直保存到程序結(jié)束。 定義局部靜態(tài)變量,如果沒有賦初值,編譯時(shí)會(huì)自動(dòng)賦默認(rèn)初值。 局部靜態(tài)變量只能在定義它的函數(shù)中使用。 全局變量都是靜態(tài)的。 利用extern 外部變量方式表示變量的定義在別的文件中,提示編譯器遇到此變量時(shí),在其他模塊中尋找其定義。而函數(shù)則是利用函數(shù)原型來聲明。 用static 關(guān)鍵字說明一個(gè)不能在其

23、他源文件中引用的全局變量。即靜態(tài)全局變量在聲明它的整個(gè)文件都是可見的,但是在文件之外是不可見的。2、動(dòng)態(tài)存儲(chǔ)區(qū)僅在在執(zhí)行時(shí)分配空間,用完后釋放存儲(chǔ)空間。存放自動(dòng)變量和形式參數(shù)。 寄存器變量用register關(guān)鍵字說明。寄存器變量對(duì)寄存器的占用是動(dòng)態(tài)的。第九章 預(yù)處理命令1979.1 預(yù)編譯命令作用預(yù)編譯命令主要完成宏定義、文件包含、條件編譯三種功能。1、宏定義指用一個(gè)指定的標(biāo)識(shí)符(名字)來代表一個(gè)字符串。在預(yù)編譯時(shí),將宏名替代成字符串的過程稱為宏展開。如: # define PI 3.1415926 定義宏,# undef PI 終止宏定義的作用域。 #define V(a,b,c) a*b*

24、c 定義帶參數(shù)的宏。當(dāng)宏展開時(shí),將引用宏名語句中的實(shí)參字符串代替宏定義的形參字符串。int v =V(2,3,4)則宏展開后為:int v= 2*3*4;2、文件包含指一個(gè)源文件可以將另一個(gè)源文件的全部?jī)?nèi)容包含進(jìn)來。如: #include “文件名”或#include 編譯預(yù)處理時(shí),將包含文件的全部?jī)?nèi)容復(fù)制到源文件中。在編譯時(shí)作為一個(gè)源程序來編譯。3、條件編譯在預(yù)編譯處理時(shí),確定編譯時(shí)要編譯的部分。如: # ifdef 標(biāo)識(shí)符程序段1# else程序段2# endif # if 表達(dá)式程序段1# else程序段2# endif第十章 指針21110.1 變量的訪問方式1、直接訪問如:int a

25、 = 10;2、間接訪問定義一個(gè)指針變量p,存放變量a的首地址,通過p訪問變量a。則稱指針變量p指向變量a。如:int a=10;int *p1; p=&a;b=*p1; 或*p1=100;等價(jià)于a=100;10.2 指針變量1、指針變量的類型是指該變量指向的內(nèi)存數(shù)據(jù)的數(shù)據(jù)類型。2、必須用引用變量的地址給指針變量賦值。3、可以給指針變量賦值空值null,防止指針變量存儲(chǔ)隨機(jī)值導(dǎo)致系統(tǒng)錯(cuò)誤。4、數(shù)組名代表數(shù)據(jù)的首地址。數(shù)組指針或數(shù)組名+1,指向下一個(gè)數(shù)組元素的存儲(chǔ)地址。聲明格式:數(shù)據(jù)類型 *p ;賦值格式:p=a;或p=&a0;引用格式:*p=常量;等價(jià)于p0=常量;等價(jià)于a0=常量;等價(jià)于*a

26、=常量; *(p+1)=常量;等價(jià)于p1=常量;等價(jià)于a1=常量;等價(jià)于*(a+1)=常量;5、數(shù)組名和指針變量雖然都可以代表數(shù)組的首地址,但是指針變量值可以改變,而數(shù)組名的值不可以改變。6、函數(shù)的指針專門用來存放函數(shù)的入口地址,當(dāng)把函數(shù)的地址賦值給它時(shí),它就指向該函數(shù)的入口地址。聲明格式:數(shù)據(jù)類型(*指針變量名)()如:int (*P)();賦值格式:p=max; 注max為定義的函數(shù)名;函數(shù)名代表該函數(shù)的入口地址。引用格式:c=(*p)(a,b);等價(jià)c=max(a,b);7、只能將變量已分配的地址賦值給指針變量,不能直接將整數(shù)賦值給指針變量。8、指針變量可以有null值,防止指針誤作用。

27、第十一章 結(jié)構(gòu)體27011.1 結(jié)構(gòu)體2701、作用將不同類型的數(shù)據(jù)組合成一個(gè)有機(jī)的整體。2、結(jié)構(gòu)體的定義結(jié)構(gòu)體是一種數(shù)據(jù)結(jié)構(gòu),按照某種規(guī)則定義,將若干個(gè)不同數(shù)據(jù)類型(也可相同)的數(shù)據(jù)項(xiàng)的組合成的一個(gè)有機(jī)整體。3、聲明結(jié)構(gòu)體類型的形式:struct 結(jié)構(gòu)體類型名字 成員列表; 成員列表形式:類型符 成員名 如:int num;11.2 聲明結(jié)構(gòu)體類型變量的方法2711、先定義結(jié)構(gòu)體類型:struct 結(jié)構(gòu)體類型名字 成員列表;再定義結(jié)構(gòu)體變量:struct結(jié)構(gòu)體類型名字 結(jié)構(gòu)體變量名。2、可在定義結(jié)構(gòu)體類型時(shí),定義結(jié)構(gòu)體類型變量。struct 結(jié)構(gòu)體類型名字 成員列表結(jié)構(gòu)體類型變量1,結(jié)構(gòu)體類

28、型變量2,;11.3 結(jié)構(gòu)體變量引用2731、不能將一個(gè)結(jié)構(gòu)體變量作為一個(gè)整體進(jìn)行輸入輸出,只能對(duì)結(jié)構(gòu)體變量成員分別賦值。2、結(jié)構(gòu)體變量成員引用方式:結(jié)構(gòu)體變量名.成員名3、如果結(jié)構(gòu)體變量成員是另一個(gè)結(jié)構(gòu)體變量,則要用若干個(gè)成員運(yùn)算符,一級(jí)一級(jí)找到最低一級(jí)的成員。11.4 結(jié)構(gòu)體變量初始化1、在聲明變量時(shí)整體賦值。2、復(fù)制相同結(jié)構(gòu)的變量賦值。3、除以上兩種情況下可以對(duì)結(jié)構(gòu)體類型變量整體賦值,其余情況下只能對(duì)變量成員分別賦值。11.5 結(jié)構(gòu)體數(shù)組2751、結(jié)構(gòu)體數(shù)組在內(nèi)存中連續(xù)存放。2、聲明方式:與定義結(jié)構(gòu)體變量方法相同。見11.2,只是在變量名后+n。也可在定義結(jié)構(gòu)體數(shù)組時(shí)直接初始化結(jié)構(gòu)體數(shù)組

29、,此時(shí)可采用+的形式。3、初始化方式:同定義結(jié)構(gòu)體變量方法。11.6 結(jié)構(gòu)體類型指針結(jié)構(gòu)體類型指針是指指向結(jié)構(gòu)體變量所占據(jù)的內(nèi)存的起始位置的指針。聲明形式:struct 結(jié)構(gòu)體類型名 *指針名。如:struct student *p;賦值形式:指針名=&結(jié)構(gòu)體變量 。如:p=&studengt1;引用形式:(*P).成員名 或 p-成員名。*p表示指針p指向的結(jié)構(gòu)體變量。注意:1、定義的結(jié)構(gòu)體類型,和聲明結(jié)構(gòu)體變量時(shí)不分配空間。2、結(jié)構(gòu)體可以嵌套定義。3、結(jié)構(gòu)體成員名可以與變量名相同。11.7 鏈表2831、單項(xiàng)鏈表結(jié)構(gòu):鏈表有一個(gè)頭指針和表尾null指針。每個(gè)結(jié)點(diǎn)包含實(shí)際數(shù)據(jù)和下一個(gè)結(jié)點(diǎn)的地

30、址。2、可以用結(jié)構(gòu)體類型指針,將多個(gè)結(jié)構(gòu)體變量鏈接起來形成結(jié)構(gòu)體鏈表。如:11.8 共用體 2971、共用體指將幾種不同類型的變量存儲(chǔ)在同一段內(nèi)存單元中。2、共用體變量的存儲(chǔ)單元大小等于最長(zhǎng)成員變量所占內(nèi)存的長(zhǎng)度3、共用體變量中起作用的是最后一次存放成員。4、共用體類型聲明方式:union 公用體類型名稱 成員變量列表;5、共用體變量聲明方式:(1)union 公用體類型名稱 成員列表共用體變量;(2)先聲明共用體類型,然后聲明共用體變量,union 公用體類型名稱 共用體變量。11.9 枚舉類型3011、枚舉類型指將變量的值一一列舉出來,變量的值只限于列舉出來的值的范圍內(nèi)的一個(gè)。2、聲明枚舉

31、類型:enum 枚舉類型名稱 枚舉常量列表;3、聲明枚舉變量:enum 枚舉類型名稱 枚舉類型變量;11.10 用typedef定義的類型3041、typedef 的作用可以用typedef聲明新的類型名來代替已有的類型名。2、聲明方式:typedef 類型名稱 新的類型名稱。第十二章 位運(yùn)算30812.1 位段 3151、位段是一種特殊的數(shù)據(jù)結(jié)構(gòu),它允許定義一個(gè)由位組成段,并可為它賦以一個(gè)名字。位段一般作為結(jié)構(gòu)體的成員。2、聲明方法: 位段結(jié)構(gòu)類型聲明方法:struct 結(jié)構(gòu)體類型名稱 位段成員列表; 位段結(jié)構(gòu)成員(即位段變量)聲明方法:unsigned int 位段變量 : n;如: st

32、ruct packed_struct unsigned int f1 :1; unsigned int f2 :1; unsigned int f3 :1; unsigned int type :4; unsigned int index :9;3、位段結(jié)構(gòu)類型變量聲明方法:同結(jié)構(gòu)體。4、同一位段必須存儲(chǔ)在同一個(gè)存儲(chǔ)單元中,不能跨兩個(gè)單元。第十三章 文件31913.1 文件3191、文件指存儲(chǔ)在外部介質(zhì)上的數(shù)據(jù)集合(數(shù)據(jù)文件),操作系統(tǒng)以文件為單位對(duì)數(shù)據(jù)進(jìn)行管理。13.2 文件的分類3191、從用戶的觀點(diǎn)看: 特殊文件指標(biāo)準(zhǔn)輸入輸出文件或標(biāo)準(zhǔn)設(shè)備文件。 普通文件指磁盤文件。2、從操作系統(tǒng)的角度

33、看:每一個(gè)與主機(jī)相關(guān)聯(lián)的輸入輸出設(shè)備都可看作一個(gè)文件。(1)根據(jù)文件的組織形式分為:順序存取文件 和 隨機(jī)存取文件。(2)根據(jù)文件的存儲(chǔ)形式分為:ASCII文件 和 二進(jìn)制文件。13.3 C語言對(duì)文件的處理方法319C語言中對(duì)文件的存取是以字符(字節(jié))為單位的,一個(gè)輸入輸出流就是一個(gè)字節(jié)流或二進(jìn)制流。文件的存儲(chǔ)方式分為緩沖文件系統(tǒng)和非緩沖文件系統(tǒng)。區(qū)別是緩沖文件系統(tǒng)是系統(tǒng)自動(dòng)開辟緩沖區(qū),非緩沖文件系統(tǒng)是由程序?yàn)槊總€(gè)文件設(shè)定緩沖區(qū)。ANSI C標(biāo)準(zhǔn)只采用 緩沖文件系統(tǒng) 來處理文件。13.4 文件結(jié)構(gòu)體類型321緩沖文件系統(tǒng)中,每個(gè)被使用的文件都在內(nèi)存中開辟一個(gè)FILE結(jié)構(gòu)體類型的區(qū),用來存放文件

34、的有關(guān)信息(文件名字、文件狀態(tài)、當(dāng)前位置、緩沖區(qū)等有關(guān)信息),F(xiàn)ILE結(jié)構(gòu)體類型原型: typedef struct short level; *緩沖區(qū)“滿”或“空”的程度* unsigned flags; *文件狀態(tài)標(biāo)志* char fd; *文件描述符* unsigned char hold; *如無緩沖區(qū)不讀取字符* short bsize; *緩沖區(qū)的大小* unsigned char *buffer; / *數(shù)據(jù)緩沖區(qū)的位置*/ unsigned char *curp; /*指針,當(dāng)前的指向*/ unsigned istemp; /*臨時(shí)文件,指示器*/ short token;/*

35、用于有效性檢查*/FILE; 13.5 文件結(jié)構(gòu)體數(shù)組和指針321FILE *fp聲明了一個(gè)指向FILE類型結(jié)構(gòu)體的指針變量。FILE f5聲明了一個(gè)文件結(jié)構(gòu)體數(shù)組f,它有5個(gè)元素,存放5個(gè)文件的信息。FILE 變量聲明了一個(gè)文件結(jié)構(gòu)體變量。13.6 文件的操作321C語言要求,在文件讀寫之前要“打開”文件,在使用結(jié)束后要“關(guān)閉”文件。1、打開文件: FILE *fp; fpfopen(“文件名”,“使用文件方式”);指針變量指向被打開的文件。例如:fp = fopen(“a1”,“r”)。2、關(guān)閉文件:fclose(文件指針);返回值:關(guān)閉成功返回值為;否則返回EOF(-1) 。使文件指針變

36、量不指向該文件,也就是文件指針變量與文件“脫鉤”,此后不能再通過該指針對(duì)原來與其相聯(lián)系的文件進(jìn)行讀寫操作。3、將字符寫到文件中:fputc ( ch,fp ) ;返回值:如果輸出成功,則返回值就是輸出的字符;如果輸出失敗,則返回一個(gè)EOF(-1)。將字符(ch的值)輸出到文件指針fp所指向的文件中去。該文件必須是以寫或讀寫方式打開的。4、將字符從文件中讀出:chfgetc(fp);返回值:讀取成功一個(gè)字符,賦給c。如果遇到文件結(jié)束符,返回一個(gè)文件結(jié)束標(biāo)志EOF(-1)。從指定的文件讀入一個(gè)字符,該文件必須是以讀或讀寫方式打開的。 注意:ANSI C提供一個(gè)feof()函數(shù)來判斷文件是否真的結(jié)束

37、。如果是文件結(jié)束,函數(shù)feof(fp)的值為(真);否則為(假)。以上也適用于文本文件的讀取。 5、數(shù)據(jù)塊讀寫: fread (buffer,size,count,fp); fwrite(buffer,size,count,fp); buffer:是一個(gè)指針。對(duì)fread 來說,它是讀入數(shù)據(jù)的存放地址。對(duì)fwrite來說,是要輸出數(shù)據(jù)的地址(均指起始地址)。size: 要讀寫的字節(jié)數(shù)。count: 要進(jìn)行讀寫多少個(gè)size字節(jié)的數(shù)據(jù)項(xiàng)。fp: 文件型指針。6、格式化讀寫函數(shù): fprintf ( 文件指針,格式字符串,輸出表列); fscanf ( 文件指針,格式字符串,輸入表列); 注意:

38、用fprintf和fscanf函數(shù)對(duì)磁盤文件讀寫,使用方便,容易理解,但由于在輸入時(shí)要將ASCII碼轉(zhuǎn)換為二進(jìn)制形式,在輸出時(shí)又要將二進(jìn)制形式轉(zhuǎn)換成字符,花費(fèi)時(shí)間比較多。因此,在內(nèi)存與磁盤頻繁交換數(shù)據(jù)的情況下,最好不用fprintf和fscanf函數(shù),而用fread和fwrite函數(shù)。7、以“字”或者整數(shù)為單位讀寫函數(shù): putw(int i,FILE * fp); int i = getw(FILE * fp); 8、以“字符串”為單位讀寫文件的函數(shù): fgets(str,n,fp); 從fp指向的文件讀出n-1個(gè)字符,在最后加一個(gè)0。返回值:str的首地址。如果遇到EOF則讀入結(jié)束。 fp

39、uts(“china”,fp); 把字符串寫入到fp指向的文件。第一個(gè)參數(shù)可以是字符串常量、字符數(shù)組名或字符型指針。字符串末尾的不輸出。 13.7 文件的定位3331、將文件當(dāng)前的位置指針重新返回到文件的開頭位置:無返回值。 rewind (fp);執(zhí)行后,將文件的位置指針重新定位到文件的開頭。2、隨機(jī)讀寫:改變文件的位置指針,一般用于二進(jìn)制文件。 fseek(文件類型指針,位移量,起始點(diǎn));無返回值。起始點(diǎn):文件開頭 SEEK_SET 0 文件當(dāng)前位置 SEEK_CUR 1 文件末尾 SEEK_END 2位移量:以起始點(diǎn)為基點(diǎn),向后(前,末尾時(shí))移動(dòng)的字節(jié)數(shù)。一般要求為long型。3、獲取流

40、式文件當(dāng)前的位置指針:返回當(dāng)前位置用相對(duì)于文件開頭的位移量來表示。,出錯(cuò)時(shí)返回EOF。 i = ftell(fp); 13.8 出錯(cuò)檢測(cè)3351、ferror(fp);返回0,表示未出錯(cuò);返回非0,表示出錯(cuò)。注意:在調(diào)用一個(gè)輸入輸出函數(shù)后立即檢查ferror函數(shù)的值,否則信息會(huì)丟失。在執(zhí)行fopen函數(shù)時(shí),ferror函數(shù)的初始值自動(dòng)置為。 2、clearerr(fp);使文件錯(cuò)誤標(biāo)志和文件結(jié)束標(biāo)志置為0。只要出現(xiàn)錯(cuò)誤標(biāo)志,就一直保留,直到對(duì)同一文件調(diào)用clearerr函數(shù)或rewind函數(shù),或任何其他一個(gè)輸入輸出函數(shù)。調(diào)用后feeror(fp)的值變?yōu)?,且文件結(jié)束標(biāo)志置為0。13.9 小結(jié)

41、336分類 函數(shù)名 功能 打開文件 fopen() 打開文件 關(guān)閉文件 fclose() 關(guān)閉文件文件定位 fseek() 改變文件位置指針的位置 Rewind() 使文件位置指針重新至于文件開頭 Ftell() 返回文件位置指針的當(dāng)前值文件狀態(tài) feof() 若到文件末尾,函數(shù)值為真 Ferror() 若對(duì)文件操作出錯(cuò),函數(shù)值為真 Clearerr() 使ferror和feof()函數(shù)值置零文件讀寫 fgetc(),getc()從指定文件取得一個(gè)字符 fputc(),putc()把字符輸出到指定文件 fgets()從指定文件讀取字符串 fputs()把字符串輸出到指定文件 getw()從指定

42、文件讀取一個(gè)字(int型) putw()把一個(gè)字輸出到指定文件 fread()從指定文件中讀取數(shù)據(jù)項(xiàng) fwrite()把數(shù)據(jù)項(xiàng)寫到指定文件中 fscanf()從指定文件按格式輸入數(shù)據(jù) fprintf()按指定格式將數(shù)據(jù)寫到指定文件中第十四章 C+對(duì)C的擴(kuò)充 33814.1 C+的特點(diǎn)3381、C+保留了C語言原有的所有優(yōu)點(diǎn),增加了面向?qū)ο蟮臋C(jī)制。2、C+源文件以.cpp為后綴。3、除了可以用 /*/ 形式的注釋行外,還允許使用以/ 開頭的單行注釋。4、除了可以用printf函數(shù)輸出信息外,還可以用cout進(jìn)行輸出。cout的作用是將運(yùn)算符右側(cè)的內(nèi)容送到輸出設(shè)備中輸出。使用cout需要用到頭文件

43、iostream.h,在程序的第一行用#include命令將該頭文件“包含”進(jìn)來。 cout This is a c+ program. n ;14.2 C+的輸入輸出 339C+為了方便使用,除了可以利用printf和scanf函數(shù)進(jìn)行輸出和輸入外,還增加了標(biāo)準(zhǔn)輸入輸出流cout和cin。cout是由c和out兩個(gè)單詞組成的,代表C+的輸出流,cin是由c和in兩個(gè)單詞組成的,代表C+的輸入流。它們是在頭文件iostream.h中定義的。在鍵盤和顯示器上的輸入輸出稱為標(biāo)準(zhǔn)輸入輸出,標(biāo)準(zhǔn)流是不需要打開和關(guān)閉文件即可直接操作的流式文件。14.3 C+的輸出cout1、cout必須和輸出運(yùn)算符一起

44、使用。 在這里不作為位運(yùn)算的左移運(yùn)算符,而是起插入的作用,例如:coutHello!n;的作用是將字符串“Hello!n” 插入到輸出流cout中,也就是輸出在標(biāo)準(zhǔn)輸出設(shè)備上。2、也可以不用n控制換行,在頭文件iostream.h中定義了控制符endl代表回車換行操作,作用與n相同。endl的含義是end of line,表示結(jié)束一行。3、可以在一個(gè)輸出語句中使用多個(gè)運(yùn)算符 將多個(gè)輸出項(xiàng)插入到輸出流cout中,運(yùn)算符的結(jié)合方向?yàn)樽宰笙蛴?,因此各輸出?xiàng)按自左向右順序插入到輸出流中。每輸出一項(xiàng)要用一個(gè) 符號(hào)。例如: for (i=1; i=3;i+)coutcount=iendl;輸出結(jié)果為: c

45、ount=1count=2count= 34、用cout和 可以輸出任何類型的數(shù)據(jù)。例如: float a=3.45;int b=5;char c=A;couta=a,b=b,c=cendl;5、如果要指定輸出所占的列數(shù),可以用控制符setw設(shè)置(注意:若使用setw,必須包含頭文件 iomanip.h),如setw(5) 的作用是為其后面一個(gè)輸出項(xiàng)預(yù)留5列,如輸出項(xiàng)的長(zhǎng)度不足5列則數(shù)據(jù)向右對(duì)齊,若超過5列則按實(shí)際長(zhǎng)度輸出。例如: couta=setw(6)aendlb=setw(6)bendlc=setw(6)cendl; 輸出結(jié)果為:a=3.45b= 5c= A6、在C+中將數(shù)據(jù)送到輸出流

46、稱為“插入”(inserting) ,或“放到”(putting) 。 運(yùn)算符從輸入設(shè)備鍵盤取得數(shù)據(jù)送到輸入流cin中,然后送到內(nèi)存。在C+中,這種輸入操作稱為“提取”(extracting) 或“得到”(getting) 。 常稱為“提取運(yùn)算符”。2、cin要與 配合使用。例如:3、C+為流輸入輸出提供了格式控制,如:dec(用十進(jìn)制形式),hex(用十六進(jìn)制形式),oct(用八進(jìn)制形式), 還可以控制實(shí)數(shù)的輸出精度等。14.5 函數(shù)的重載3421、C+允許在同一作用域中用同一函數(shù)名定義多個(gè)函數(shù),這些函數(shù)的參數(shù)個(gè)數(shù)和參數(shù)類型不同,而且函數(shù)類型也可不同,這就是函數(shù)的重載,即一個(gè)函數(shù)名多用。2、

47、系統(tǒng)會(huì)根據(jù)參數(shù)的類型和個(gè)數(shù)找到與之匹配的函數(shù),并調(diào)用不同的函數(shù)。14.6 帶缺省參數(shù)的函數(shù)344C+允許實(shí)參個(gè)數(shù)與形參個(gè)數(shù)不同。辦法是在形參表列中對(duì)一個(gè)或幾個(gè)形參指定缺省值(或稱默認(rèn)值)。例如某一函數(shù)的首部可用如下形式:void fun(int a, int b, int c=100)在調(diào)用此函數(shù)時(shí)如寫成fun(2,4,6),則形參a,b,c的值分別為2,4,6(這是與過去一樣的)。如果寫成fun(2,4) ,即少寫了最后一個(gè)參數(shù),由于在函數(shù)定義時(shí)已指定了c的缺省值為100,因此a,b,c的值分別為2,4,100。請(qǐng)注意:賦予缺省值的參數(shù)必須放在形參表列中的最右端。例如:void f1(flo

48、at a, int b, int c=0, char d=a) (正確)void f2(float a, int c=0, char d=a, int b) (不正確)注意:不要同時(shí)使用重載函數(shù)和缺省參數(shù)的函數(shù),因?yàn)楫?dāng)調(diào)用函數(shù)時(shí)少寫一個(gè)參數(shù),系統(tǒng)無法判定是利用重載函數(shù)還是利用缺省參數(shù)的函數(shù),會(huì)發(fā)生錯(cuò)誤。14.7 變量的引用類型3451、“引用”(reference)是C+的一種新的變量類型,是對(duì)C的一個(gè)重要擴(kuò)充。它的作用是為一個(gè)變量起一個(gè)別名。2、假如有一個(gè)變量a,想給它起一個(gè)別名b,可以這樣寫:int a;int &b=a;這就聲明了b是a的“引用”,即a的別名。經(jīng)過這樣的聲明后,使用a或b的作用相同,都代表同一變量。注意:在上述聲明中,&是“引用聲明符”, 并不代表地址。不要理解為“把a(bǔ)的值賦給b的地址”。3、聲明引用并不另開辟內(nèi)存單元,b和a都代表同一變量單元。在聲明一個(gè)引用型變量時(shí),必須同時(shí)使之初始化,即聲明它代表哪一個(gè)

溫馨提示

  • 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)論