專題講座資料(2021-2022年)各章學習目標、小結(jié)_第1頁
專題講座資料(2021-2022年)各章學習目標、小結(jié)_第2頁
專題講座資料(2021-2022年)各章學習目標、小結(jié)_第3頁
專題講座資料(2021-2022年)各章學習目標、小結(jié)_第4頁
專題講座資料(2021-2022年)各章學習目標、小結(jié)_第5頁
已閱讀5頁,還剩10頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、各章學習目標、小結(jié)第一章 C語言概述本章學習目標:· 了解C語言的歷史和發(fā)展過程。· 了解C語言的特點及C程序的組成部分。· 了解C程序的編譯、鏈接過程。本章小結(jié):本章首先介紹了C語言的發(fā)展簡史。C語言誕生于美國貝爾實驗室,經(jīng)過不斷地修改、完善,C語言目前已成為人們廣泛使用的語言之一?,F(xiàn)在通用的C語言為1983年美國國家標準化協(xié)會(ANSI)制定的標準C語言,稱為ANSI C。C語言的特點使得它在各種語言中獨樹一幟,受到人們的青睞,廣泛應用于社會各個領(lǐng)域,其特點歸納如下。· 結(jié)構(gòu)化的語言。· 模塊化的語言。· 簡潔、緊湊,使用方便,靈

2、活。· 可移植性好。· 數(shù)據(jù)結(jié)構(gòu)豐富。· 運算符豐富,生成代碼質(zhì)量高。C語言程序由函數(shù)組成。一個C源程序有且僅有一個main()函數(shù),但是可以包含任意多個其他函數(shù),因此,函數(shù)是C程序的基本單元。C語言開發(fā)者編制了內(nèi)容豐富的庫函數(shù),編程者可以通過函數(shù)調(diào)用的形式使用這些庫函數(shù),方便、快捷、編程效率高。C程序中,每一個基本語句和數(shù)據(jù)定義都是以分號“;”結(jié)束,書寫格式自由,一行可寫多個語句,一個語句也可以分別寫在幾行上??梢允褂?*/對程序添加注釋以方便讀者閱讀、理解程序的編寫意圖。C語言是編譯型語言,源程序必須經(jīng)過編譯和鏈接生成可執(zhí)行文件后才能運行。編譯過程中可以檢查出

3、程序的錯誤,經(jīng)過編輯修改后,再重新編譯。一般情況下,一個程序要經(jīng)過多次編輯和修改才能通過編譯。鏈接目標文件的目的就是要生成最終的可執(zhí)行文件。C程序經(jīng)過編譯、鏈接,產(chǎn)生了一個可執(zhí)行文件(*.exe)。運行該文件,即可得到程序的運行結(jié)果。第二章 數(shù)據(jù)類型、運算符與表達式本章學習目標:· 了解常量與變量的含義。· 掌握數(shù)據(jù)類型及類型間的混合運算。· 掌握運算符與表達式及其優(yōu)先級和結(jié)合性。本章小結(jié):本章主要講述了C語言中的基本數(shù)據(jù)類型及類型的混合運算、常用的運算符與表達式及其優(yōu)先級和結(jié)合性等問題。(1) 常量:在程序運行過程中其值不發(fā)生改變的量稱為常量。如0x123、0.

4、123、'a'、'n'等都是常量。(2) 變量:在程序運行過程中,其值可以改變的量稱為變量。每個變量有一個變量名,變量名只能由字母、數(shù)字和下劃線3種字符組成,且第1個字符必須是字母或下劃線,如ab、_an0ve、sun等都是合法的變量名。C語言規(guī)定,變量必須“先定義,后使用”。(3) 整型數(shù)據(jù)分為整型常量和整型變量。整型常量常用3種形式表示:十進制整數(shù),如100、3等;八進制整數(shù),如010、07等;十六進制整數(shù),如0x15、0x234等。整型變量按數(shù)據(jù)在內(nèi)存中所占的字節(jié)數(shù)分為基本型(int)、短整型(short)、長整型(long)和無符號型(unsigned)

5、4種。整型變量定義的一般形式為:<整型名><變量名>;如“int a,b;”、“unsigned c,d;”等都是整型變量的定義。在將一個整型常量賦給一個整型變量時,應注意整型數(shù)據(jù)取值范圍的選擇。(4) 實型數(shù)據(jù)分為實型變量和實型常量。實型常量也稱實數(shù)。常用十進制數(shù)的形式(如0.123、45等)和指數(shù)形式(如1.23e3、123E4等)表示。實型變量分為單精度(float型)和雙精度(double型)兩類。實型變量的定義一般形式為:<實型名><變量名>如“float a;”、“double a,b;”等都是實型變量的定義。同樣,在將實型常量賦給一

6、個實型變量時應注意實型數(shù)據(jù)取值范圍的選擇。(5) 字符型數(shù)據(jù)分為字符型常量和字符型變量。字符型常量主要包括字符常量(如'a'、'A'等)和字符串常量(如“hello”、“China”等)兩種類型,此外,轉(zhuǎn)義字符也是一種特殊的字符常量。字符變量用來存放字符變量,只能放一個字符,定義形式如下:“char c1='c'”字符串常量常用數(shù)組和指針來存儲和訪問,相關(guān)內(nèi)容將在后續(xù)內(nèi)容中講述。在一定的范圍內(nèi)(0255或-128127之間),字符型數(shù)據(jù)和整型數(shù)據(jù)之間可以通用。(6) 類型的混合運算整型、實型和字符型數(shù)據(jù)間可以進行混合運算,有兩種轉(zhuǎn)換方式。自動類型

7、轉(zhuǎn)換:數(shù)據(jù)類型由低向高自動轉(zhuǎn)換,即char,shortintunsignedlongdoublefloat。強制類型轉(zhuǎn)換:當自動類型轉(zhuǎn)換達不到編程者的要求時,可以利用強制類型轉(zhuǎn)換將一個表達式轉(zhuǎn)換成所需的類型,其一般形式為(類型名)(表達式)。如x=(int)a(如a=2.53,則x=2,a為原值2.53不變)、(float)(5%2)等。(7) 運算符與表達式本章重點講解了算術(shù)運算符與算術(shù)表達式、關(guān)系運算符與關(guān)系表達式、賦值運算符與賦值表達式以及邏輯運算符與邏輯運算表達式。此外還介紹了自增和自減運算符、條件運算符與條件表達式、逗號運算符與逗號表達式和位運算符。對于其他的一些運算符將在后面的相關(guān)

8、章節(jié)中講解。各類運算符的優(yōu)先級和結(jié)合性為:初等運算符()、>:自左至右。單目運算符:自右至左。算術(shù)運算符(先乘除后加減):自左至右。關(guān)系運算符:自左至右。邏輯運算符:自左至右。條件運算符:自右至左。賦值運算符:自右至左。逗號運算符:自左至右。第三章 順序程序設(shè)計本章學習目標:· 了解語句的概念及其構(gòu)成。· 掌握字符數(shù)據(jù)的輸入與輸出。· 掌握格式輸入與輸出。· 掌握編寫簡單的順序結(jié)構(gòu)程序的方法。本章小結(jié):本章學習了C語句、數(shù)據(jù)的輸入與輸出及最簡單的程序設(shè)計順序程序設(shè)計。一、 C語句C語句可以分為以下5類:(1) 表達式語句由表達式加分號構(gòu)成。(2)

9、空語句只有1個分號的語句稱為空語句。(3) 復合語句用大括號“”括起來的若干語句稱為復合語句。復合語句的使用方式是:當單一語句位置上的功能必須用多個語句才能實現(xiàn)時,就需要使用復合語句。(4) 函數(shù)調(diào)用語句在1個函數(shù)的后面加1個分號就構(gòu)成了1個函數(shù)調(diào)用語句。函數(shù)的使用除了在表達式中出現(xiàn)外,主要是通過函數(shù)調(diào)用語句來使用它。(5) 流程控制語句主要是對程序的走向起控制作用。常用于實現(xiàn)選擇結(jié)構(gòu)和循環(huán)結(jié)構(gòu)的程序控制。二、 數(shù)據(jù)的輸入與輸出一個完整的程序,都應該含有數(shù)據(jù)輸入/輸出操作。將原始數(shù)據(jù)輸入,經(jīng)程序處理后,輸出有用的信息。C程序的輸入/輸出功能是由系統(tǒng)提供的輸入/輸出標準函數(shù)實現(xiàn)的。常用的輸入/輸

10、出標準函數(shù)如下。字符輸入輸出函數(shù):(1) 字符輸入函數(shù)getchar()getchar()函數(shù)的功能是接收從鍵盤輸入的1個字符,它無參數(shù)。使用時應注意以下兩點。· 如果getchar()函數(shù)讀入的字符不賦給任何變量,則該函數(shù)只能作為表達式的一部分使用。· 如果在1個程序中使用了getchar()函數(shù),則必須在該程序的開頭使用下列編譯預處理命令:#include<stdio.h>這是因為getchar()函數(shù)屬于標準I/O庫函數(shù)。C語言規(guī)定:凡在程序中使用了標準I/O庫函數(shù),就需要將文件“stdio.h”調(diào)入到源程序文件中。(2) 字符輸出函數(shù)putchar()p

11、utchar()函數(shù)的功能是向終端屏幕輸出1個字符。該函數(shù)的使用形式為:putchar(c);輸出字符變量c的值。c可以是字符型變量或整型變量,也可以是1個字符常量或整型常量。格式化輸入輸出函數(shù):(1) 格式化輸入函數(shù)scanf()用scanf()函數(shù)可以輸入任何類型的數(shù)據(jù)。· 一般格式:scanf(格式控制,地址表列);· 格式說明:格式說明以“%”開頭,以1個格式字符結(jié)束,中間可以插入附加的字符。scanf()函數(shù)中使用的格式字符如表3-1所示,附加說明字符如表3-2所示。表3-1scanf()函數(shù)中的格式字符格式字符說明d用來輸入十進制整數(shù)o用來輸入八進制整數(shù)x用來輸

12、入十六進制整數(shù)c用來輸入單個字符 續(xù)表格式字符說明s用來輸入以'0'為結(jié)束標志的字符串到字符數(shù)組f用來輸入實數(shù),可以用小數(shù)形式或指數(shù)形式輸入e與f作用相同,e與f可以互相替換表3-2scanf附加的格式說明字符字符說明l用于輸入長整型數(shù)據(jù)(如%ld)以及double型數(shù)據(jù)(如%lf)h用于輸入短整型數(shù)據(jù)(可用%hd,%ho,%hx)域?qū)挒橐徽麛?shù),指定輸入數(shù)據(jù)所占寬度(列數(shù))*表示本輸入項在讀入后不賦給相應的變量· scanf函數(shù)的執(zhí)行中應注意的問題。scanf()函數(shù)中“格式控制”的后面應當是變量地址,而不應是變量名。如果在“格式控制”字符串中,除了格式說明以外還有

13、其他字符,則在輸入數(shù)據(jù)時應輸入與這些字符相同的字符。添加這些字符的目的是幫助理解,避免在輸入時產(chǎn)生錯誤的數(shù)據(jù)輸入。(2) 格式化輸出函數(shù)printf()putchar()函數(shù)只能輸出1個字符,而printf()函數(shù)的作用是向終端(一般指顯示屏幕)輸出若干個任意類型的數(shù)據(jù)。· 一般格式:printf(格式控制,輸出表列);· 格式字符。printf()函數(shù)有9種格式字符(如表3-3所示)和4種附加格式說明字符(如表3-4所示)。表3-3printf()函數(shù)中的格式字符格式字符說明d以帶符號的十進制形式輸出整數(shù)(正數(shù)不輸出符號)o以八進制的無符號形式輸出整數(shù)(不輸出前導符0)x

14、以十六進制無符號形式輸出整數(shù)(不輸出前導符0x)u以無符號十進制形式輸出整數(shù)c以字符形式輸出,只輸出一個字符s輸出字符串f以小數(shù)形式輸出單、雙精度,隱含輸出6位小數(shù)e以標準指數(shù)形式輸出單、雙精度數(shù),數(shù)字部分小數(shù)位數(shù)為6位g選用%f或%e格式中輸出寬度較短的一種格式,不輸出無意義的0表3-4 printf()函數(shù)中的附加格式說明字符格式字符說明字母l用于長整型,可加在格式符 d,o,x,u前面m(一個正整數(shù))數(shù)據(jù)最小寬度.n( 一個正整數(shù))對實數(shù),表示輸出n位小數(shù);對字符串,表示截取的字符個數(shù)-輸出的數(shù)字或字符在域內(nèi)向左靠· 使用 printf()函數(shù)應注意的問題如下。在用printf

15、()函數(shù)輸出時,應注意與上表中的格式說明匹配,否則將會出現(xiàn)錯誤。有些系統(tǒng)要求格式字符要用小寫字母。三、 順序結(jié)構(gòu)程序設(shè)計順序結(jié)構(gòu)程序就是按語句書寫順序,逐條執(zhí)行的程序。順序結(jié)構(gòu)程序比較簡單,應多編程練習以熟練掌握基本程序設(shè)計技巧。第四章 選擇程序設(shè)計本章學習目標:· 理解C語言中各類控制語句的執(zhí)行過程、功能和使用方法。· 掌握if語句的3種形式、if和else配對規(guī)則及if語句的嵌套。· 能正確地使用switch語句設(shè)計多分支選擇結(jié)構(gòu)。本章小結(jié):本章主要講了兩大語句的使用,即if語句和switch語句。它們都是C語言中使用最為頻繁的語句,必須很好地掌握。就if語句

16、而言,有3種基本使用形式和多種嵌套格式,第3種基本使用形式和兩種嵌套較為繁瑣,但在一般情況下,其功能能用switch語句代替。在學習if語句的過程中要著重把握以下知識點。· if語句后的表達式的值只有兩種情況(“真”和“假”),它是其后語句是否被執(zhí)行的依據(jù),只有表達式的值為“真”時,其語句才被執(zhí)行,否則不被執(zhí)行。· 在if-else結(jié)構(gòu)中,if子句和else子句只能有一個被執(zhí)行。程序運行時首先判斷if子句前的表達式,當if子句前的表達式為“假”時才執(zhí)行else子句。否則,else子句不被執(zhí)行。· if和else必須配對使用,當配對的if和else之間有兩個或兩個以

17、上的語句時,一定要使用大括號,作為復合語句來處理,否則程序編譯時將會出錯。· else總是與它前面的不帶else的if配對。就switch語句而言,應主要把握以下知識點。· switch結(jié)構(gòu)中有1個小括號和1個大括號,小括號內(nèi)是表達式,其值作為大括號內(nèi)入口選擇的依據(jù)。· 兩個括號(1個小括號和1個大括號)外均無“;”。· default無論在何處總是最后執(zhí)行。· 執(zhí)行過程中,當進入入口后,只要沒有遇到break語句,程序總是順序執(zhí)行下去,當遇到break語句時程序立即跳出switch結(jié)構(gòu),結(jié)束對switch的執(zhí)行。· case后必須是

18、常量或常量表達式,絕不能含有變量。· 不同case后的常量和常量表達式一定不能相同。第五章 循環(huán)程序設(shè)計本章學習目標:· 掌握C語言中while循環(huán)的用法。· 掌握C語言中do-while循環(huán)的用法。· 掌握C語言中for循環(huán)的用法。· 能對for語句和while循環(huán)進行正確的轉(zhuǎn)換。· 掌握并能熟練運用循環(huán)的嵌套設(shè)計。本章小結(jié):本章重點講述了3種循環(huán)結(jié)構(gòu),兩種循環(huán)流程控制語句以及for語句和while循環(huán)之間的相互轉(zhuǎn)換等問題。while循環(huán)是1種“當型”循環(huán),而do-while循環(huán)是1種“直到型”循環(huán)。對于while循環(huán)而言,只有當條

19、件表達式的值為“真”時才執(zhí)行循環(huán)體。對于do-while循環(huán)而言,先無條件地執(zhí)行1次循環(huán)體再判斷條件表達式的值,因此循環(huán)體至少被執(zhí)行1次。兩種while循環(huán)的關(guān)系為:當兩者的循環(huán)體相同,并且當?shù)?次判斷while后面的表達式時,若其值為“真”時,兩種循環(huán)得到的結(jié)果相同。否則,二者得到的結(jié)果不相同。for語句的形式較為復雜,有3個表達式和1個循環(huán)體語句。3個表達式均可省略,但必須在程序其他相應的位置(循環(huán)語句前、循環(huán)體內(nèi)等位置)補充必要的賦值、增值等語句。對于循環(huán)體,如果循環(huán)體由多個語句構(gòu)成,必須用大括號括起來作為1個復合語句來處理,否則就會出現(xiàn)算法錯誤。在進行程序的調(diào)試時,特別要注意這點,因為

20、大括號的有無不會造成語法上的錯誤,程序編譯時系統(tǒng)不會報錯。break語句和continue語句主要用于循環(huán)的流程控制,兩者在用法上有顯著差別。break語句用于結(jié)束整個循環(huán),執(zhí)行循環(huán)結(jié)構(gòu)后面的下一個語句。continue語句用于結(jié)束本次循環(huán),越過循環(huán)體中尚未執(zhí)行的語句,繼續(xù)進行下一次循環(huán)。break語句還可以用在switch分支選擇結(jié)構(gòu)中,但continue語句只能用于循環(huán)語句中。第六章 函數(shù)本章學習目標:· 掌握函數(shù)、函數(shù)值(函數(shù)返回值)以及函數(shù)調(diào)用等的基本概念。· 掌握函數(shù)的定義和調(diào)用方法。· 掌握函數(shù)參數(shù)的傳遞方法。· 掌握變量的作用范圍。本章小結(jié)

21、:本章著重講述了有關(guān)函數(shù)的相關(guān)知識點,重點掌握以下要點。· 在程序設(shè)計中使用函數(shù)有以下好處:可以增強程序的可讀性,可以為程序的后序擴充留下空間,便于分工合作實現(xiàn)程序的并行開發(fā)。· 函數(shù)的定義形式為:類型標識符 函數(shù)名 (參數(shù)表列)其中“類型標識符”可以是整型、實型、字符型和void類型。當省去“類型標識符”時則隱含為整型。參數(shù)的個數(shù)可有可無、可多可少,完全取決于程序的實際情況。· 在使用函數(shù)時,函數(shù)的定義是必不可少的。但是對函數(shù)的聲明可有可無,如果不對函數(shù)進行聲明則在使用函數(shù)前必須先定義。· 變量可分為全局變量和局部變量,全局變量總是定義在所有函數(shù)的外部

22、,其作用范圍是從定義位置開始一直到程序結(jié)束。局部變量總是定義在某個函數(shù)或塊語句內(nèi)部,其作用范圍只在該函數(shù)或塊語句內(nèi)部。· 變量既有數(shù)據(jù)類型,也有存儲類型。存儲類型用于指定變量在內(nèi)存中的存儲方式,變量的存儲類型主要有自動類型、靜態(tài)類型、寄存器類型和外部類型等4種。第七章 數(shù)組本章學習目標:· 掌握對數(shù)組的正確定義。· 掌握對數(shù)組的正確引用。· 掌握對數(shù)組的初始化。· 字符串的輸入、輸出和處理。· 掌握數(shù)組在函數(shù)中的運用。本章小結(jié):關(guān)于一維數(shù)組的定義、初始化和引用作以下總結(jié)。· 當定義數(shù)組并同時對所有元素進行初始化時,數(shù)組定義中

23、的“常量表達式”可以省略,系統(tǒng)默認數(shù)組的長度即為初始化時大括號內(nèi)數(shù)據(jù)的個數(shù)。· 當數(shù)組的定義與初始化同時進行時,定義數(shù)組時的“常量表達式”可以省略,系統(tǒng)默認數(shù)組的長度即為初始化時大括號內(nèi)數(shù)據(jù)的個數(shù)。· 對于字符類型的數(shù)組,初始化時單個地賦以字符與賦以字符串是有區(qū)別的。單個地賦以字符時的數(shù)組的長度即為所賦字符的個數(shù);賦以字符串的數(shù)組的長度即為字符號串的長度再加1,兩者相比多了一個字符“0”占用的存儲單元。· 對數(shù)組所賦數(shù)據(jù)的個數(shù)只能小于或等于數(shù)組的長度,而不能大于數(shù)組的長度。當數(shù)組的長度大于初始化時所賦的字符(串)的長度時,對于賦以字符的數(shù)組余下的部分補0值,而對于

24、賦以字符串的數(shù)組余下的部分的第1個存儲單元補以字符“0”,其余部分不管。關(guān)于對數(shù)組中各元素的引用應注意以下要點。· 數(shù)組中各元素都有自己的名稱,其表示方法為:數(shù)組名下標。· 下標是從0開始,到“常量表達式-1”結(jié)束。· 各數(shù)組元素實質(zhì)上是1個變量,可以像對待其他普通變量一樣對其進行各種操作和運算。· 對數(shù)組名有兩種理解,一是理解為數(shù)組的名稱,二是理解為數(shù)組的首地址,即第1個元素的地址。數(shù)組不是1個變量,不能對其賦值。對數(shù)組中各元素地址的表示有兩種方法。· 第1種:數(shù)組名+整數(shù)。· 第2種:&數(shù)組名下標。需要在此一提的是:數(shù)組中

25、第1個元素的地址有3種表示方法,例如對于整型數(shù)組a10的第1個元素的地址表示方法如下:aa+0&a0對二維數(shù)組的有關(guān)知識作以下總結(jié)。有關(guān)二維數(shù)組的定義:在二維數(shù)組中,“常量表達式1”用于確定二維數(shù)組的行數(shù)即第一維的長度,“常量表達式2”用于確定二維數(shù)組的列數(shù)即第二維的長度。兩個表達式必須是常量,而不能含有變量。有關(guān)二維數(shù)組的引用。· 引用二維數(shù)組中元素的格式為:數(shù)組名下標1下標2,即二維數(shù)組中各元素的名稱,其實質(zhì)為變量。既可以對其引用,也可以對其賦值。· 無論是二維數(shù)組的“行”還是二維數(shù)組的“列”,其下標總是從0開紿的。與一維數(shù)組一樣,二維數(shù)組“行”和“列”的最大下

26、標與二維數(shù)組對應的兩維的長度之間始終相差數(shù)值1。· 二維數(shù)組中的每個元素(存儲單元)都是由兩個值決定的,一個是行的下標,一個是列的下標。引用1個元素必須同時使用兩個下標。有關(guān)二維數(shù)組中地址的表示方法。· “行”的首地址為:二維數(shù)組名行下標。· 最常用的元素的地址表示方法為:&二維數(shù)組名行下標列下標。· 二維數(shù)組名是二維數(shù)組的首地址,數(shù)組名下標、&數(shù)組名下標1下標2也是二維數(shù)組的首地址。· 如果用i表示二維數(shù)組的行下標,用j表示二維數(shù)組的列下標,用m表示二維數(shù)組第一維的長度,有3種方法表示各元素的地址,分別如下:a+i*m+ja0

27、+i*m+j&a00+i*m+j有關(guān)二維數(shù)組的初始化。· 可對所有的元素賦值,把所賦數(shù)據(jù)放在大括號內(nèi)并以“,”相隔即可,或者在以“行”為單位再加以大括號。兩種方法相比,第1種方法較為簡便但不直觀,第2種方法較為直觀但不夠簡便。· 可以對部分元素賦值,如果對二維數(shù)組的前幾個元素賦值,把所賦數(shù)據(jù)放在大括號內(nèi)并以“,”相隔即可。如果對二維數(shù)組中的元素有間隔地賦值則必須以“行”為單元賦值。· 在定義二維數(shù)組并對其全部元素進行初始化時,可以省略第一維的長度。第八章 指針本章學習目標:· 掌握指針的概念、定義。· 掌握指針變量的使用。·

28、掌握指針在函數(shù)中的運用。· 掌握指針的運算。· 掌握指針在數(shù)組中的運用。本章小結(jié):本章全面介紹了C語言中指針的相關(guān)知識,現(xiàn)將本章主要知識點總結(jié)如下:(1) 指針與地址的關(guān)系簡單地說,指針是內(nèi)存地址的代名詞。通過指針(地址)操作,可以對存儲單元中的數(shù)據(jù)實現(xiàn)讀寫操作。用于存放1個變量地址的特殊變量就是指針變量。(2) 指針變量的定義指針變量定義的基本形式為:指針類型 *指針變量名 例如:int *p;(3) 指針類型在指針變量定義中的類型符(int、char、float.)稱為指針類型。由于指針代表1個內(nèi)存單元的地址,程序?qū)⒁鶕?jù)此地址讀出(或?qū)懭耄┐娣旁诖藛卧械臄?shù)據(jù),因此指

29、針類型實際上表示該地址單元存儲數(shù)據(jù)的類型。(4) 指針變量的存儲。指針變量占有固定大小的存儲單元。1個地址本質(zhì)上是整數(shù)(或長整數(shù),為簡單計,可以認為是整數(shù))。故指針變量都占2個字節(jié)的存儲空間,與指針類型無關(guān)。(5) 取地址運算符號“&”是取變量地址的單目運算符,它直接作用于1個變量前表示該變量的地址,例如,若定義以下變量:float x;char y;則&x和&y就是這兩個變量的內(nèi)存地址,通常,程序設(shè)計者并不關(guān)心&x和&y的具體值,只要知道&x和&y是變量x和y的指針就可以了。若在前兩個語句后再有1個定義指針變量的語句:float *f1

30、;char *f2;則可進行以下賦值:f1=&x;f2=&y;這樣就使指針變量f1指向變量x所在的地址,f2指向變量y所在的地址。注意:以下的賦值語句是錯誤的:f1=&y;f2=&x;錯誤的原因是指針基類型與變量的數(shù)據(jù)類型不一致。(6) 間接訪問變量使用取內(nèi)容運算符“*”可以間接訪問1個指針指向的變量,只需要在指針名前加上“*”即可。(7) 指針的自加和自減指針變量可以進行自加和自減運算,但其含義與普通變量的同種運算不同。若已有定義“float *p”,則:· 表達式p+(p-)將使指針向后(前)移動1個數(shù)據(jù)的位置。· p+1指向數(shù)組的下1個

31、元素,而不是簡單地使指針變量p的值加1。其值實際變化為pointer+1*size(size為一個元素占用的字節(jié)數(shù))。例如,假設(shè)指針變量pointer的當前值為3000,則pointer+1為3000+1*2=3002,而不是3001。(8) 指針作函數(shù)參數(shù)在將指針作為函數(shù)參數(shù)時,一定要保證參數(shù)對應。指針是一種可以使我們“繞開”1個變量的名字而存取它的工具或手段,指針本身并沒有受間接引用的影響。并且實參和形參指向同一段內(nèi)存地址,因此在函數(shù)調(diào)用過程中可修改實參變量的值,還可以從被調(diào)函數(shù)中獲得多個返回值以提高以參數(shù)傳遞的程序的效率。第九章 編譯預處理、結(jié)構(gòu)體和共同體本章學習目標:· 掌握

32、有關(guān)編譯預處理的知識。· 掌握對簡單的結(jié)構(gòu)體的運用。· 了解有關(guān)共同體的知識。本章小結(jié):本章主要講述了編譯預處理命令的作用、定義和相關(guān)注意事項;結(jié)構(gòu)體和共同體的定義、初始化、作用、區(qū)別以及應用和位運算。其中結(jié)構(gòu)體的使用是重點。(1) C程序中允許使用以“#”開頭的命令,這些命令稱為編譯預處理命令,在對程序進行編譯之前,所有這些命令都要被預先翻譯和加工處理,因此稱為預處理。編譯預處理命令不是語句,所以其后沒有分號。它可以寫在程序中的任何位置,其作用范圍是從書寫位置開始到文件末尾。編譯預處理命令主要有3種形式。· 宏替換宏替換也稱宏定義,這是以“#define”開頭的

33、一類命令,它的基本功能是用1個名字來代表1個常數(shù)或一段程序代碼,在應用中可以有兩種形式:帶參數(shù)的宏和不帶參數(shù)和宏。其一般形式如下:不帶參數(shù)的宏:#define 宏名 宏體帶參數(shù)的宏:#define 宏名(參數(shù)名1,參數(shù)名2,參數(shù)名n) 宏體后一種形式的功能要比前一種強大,在定義中的3部分必須以空格分隔,無論什么樣的宏,系統(tǒng)只進行原樣替換而不進行計算,因此宏替換無計算功能。· 文件包含文件包含處理是指1個源文件可以將另外1個源文件的全部內(nèi)容包含進來,即將另外的文件包含到本文件之中,C語言提供了“#include”命令用來實現(xiàn)“文件包含”的操作。· 條件編譯在一般情況下,源程序中所有的程序代碼都要參加編譯,但有時希望要有選擇性地編譯程序代碼,這時就要用到條件編譯。這樣源程序可以不必作任何修改就能適用于不同的環(huán)境,增加程序的可移植性。(2) 結(jié)構(gòu)體結(jié)構(gòu)體是一種典型的復雜數(shù)據(jù)類型,1個結(jié)構(gòu)體可由若干個不同數(shù)據(jù)類型的成員構(gòu)成,而且它的成員的類型個數(shù)可根據(jù)用戶需要自己定義,這樣使得結(jié)構(gòu)體的構(gòu)造非常靈活。結(jié)構(gòu)體主要用于需要把1個目標的所有信息集合在一起但它的信息又是不同類型的場合。· 使用結(jié)構(gòu)體也像使用其他變量一樣,在用之前必須定義,它的一般形式如下:struct 結(jié)構(gòu)體標識名類型名1 結(jié)構(gòu)成員名表1;類型名2 結(jié)構(gòu)成員

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論