版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、C 語言第1頁,共91頁。C語言程序的整體框架#include /預(yù)處理指令,告訴編譯器編譯之前包含stdio.h文件int main() /主函數(shù),程序從這里開始執(zhí)行 printf(“C語言中文網(wǎng)”); /標(biāo)準(zhǔn)庫函數(shù),格式化輸出 return 0; /終止主函數(shù),返回0第 13 行、第 56 行是固定的,所有C語言源代碼都必須有這幾行。第2頁,共91頁。頭文件#include 是什么意思呢?C語言開發(fā)者們編寫了很多常用函數(shù),并分門別類的放在了不同的文件,這些文件就稱為頭文件(header file)。每個(gè)頭文件中都包含了若干個(gè)功能類似的函數(shù),調(diào)用某個(gè)函數(shù)時(shí),要引入對應(yīng)的頭文件,否則編譯器找不
2、到函數(shù)。實(shí)際上,頭文件往往只包含函數(shù)的說明,也就是告訴我們函數(shù)怎么用,而函數(shù)本身保存在其他文件中,在鏈接時(shí)才會找到。對于初學(xué)者,可以暫時(shí)理解為頭文件中包含了若干函數(shù)第3頁,共91頁。編譯(Compile)C語言代碼由固定的詞匯按照固定的格式組織起來,但是CPU只認(rèn)識幾百個(gè)二進(jìn)制形式的指令。這就需要一個(gè)工具,將C語言代碼轉(zhuǎn)換成CPU能夠識別的二進(jìn)制指令,也就是將代碼加工成 .exe 程序的格式;這個(gè)工具是一個(gè)特殊的軟件,叫做編譯器(Compiler)。編譯器能夠識別代碼中的詞匯、句子以及各種特定的格式,并將他們轉(zhuǎn)換成計(jì)算機(jī)能夠識別的二進(jìn)制形式,這個(gè)過程稱為編譯(Compile)。編譯也可以理解為
3、“翻譯”,大致包括詞法分析、語法分析、語義分析、性能優(yōu)化、生成可執(zhí)行文件五個(gè)步驟。第4頁,共91頁。鏈接(Link)C語言代碼經(jīng)過編譯以后,并沒有生成最終的可執(zhí)行文件(.exe 文件),而是生成了一種叫做目標(biāo)文件(Object File)的中間文件(或者說臨時(shí)文件)。目標(biāo)文件也是二進(jìn)制形式的,對于 GCC,目標(biāo)文件的后綴是.o。鏈接(Link)其實(shí)就是一個(gè)“打包”的過程,它將所有二進(jìn)制形式的目標(biāo)文件和系統(tǒng)組件組合成一個(gè)可執(zhí)行文件。完成鏈接的過程也需要一個(gè)特殊的軟件,叫做鏈接器(Linker)。第5頁,共91頁。常見編譯器C語言的編譯器有很多種,不同的平臺下有不同的編譯器,例如: Windows
4、 下常用的是微軟開發(fā)的cl.exe,它被集成在 Visual Studio 或 Visual C+ 中,一般不單獨(dú)使用;Linux 下常用的是 GUN 組織開發(fā)的GCC,很多 Linux 發(fā)行版都自帶 GCC;Mac 下常用的是LLVM/Clang,它被集成在 Xcode 中(Xcode 以前集成的是 GCC,后來由于 GCC 的不配合才改為 LLVM/Clang,LLVM/Clang 的性能比 GCC 更加強(qiáng)大)第6頁,共91頁。集成開發(fā)環(huán)境除了編譯器是必須的工具,我們往往還需要很多其他輔助軟件:編輯器代碼提示器調(diào)試器項(xiàng)目管理工具這些工具通常被打包在一起,統(tǒng)一發(fā)布和安裝,例如 Visual
5、Studio、Dev C+、Xcode、Visual C+ 6.0、C-Free、Code:Blocks 等,它們統(tǒng)稱為集成開發(fā)環(huán)境(IDE,Integrated Development Environment)第7頁,共91頁。編譯編譯四個(gè)過程:預(yù)處理、編譯、匯編、鏈接。第8頁,共91頁。預(yù)編譯為正式編譯做準(zhǔn)備,也叫預(yù)處理。預(yù)編譯主要完成如下工作:(1)宏替換(2)包含頭文件,將include包含的頭文件內(nèi)容復(fù)制到文件中(3)條件編譯預(yù)編譯將.c文件變成.i文件。第9頁,共91頁。編譯將.i文件編譯成.s文件。以單個(gè)文件為單位進(jìn)行。將c語法的c源碼翻譯為匯編語言的匯編代碼第10頁,共91頁。
6、匯編將.s文件變成.o文件。將匯編源碼翻譯成能被CPU執(zhí)行的機(jī)器指令。第11頁,共91頁。鏈接將眾多的.o文件合成一個(gè)完整的可執(zhí)行文件。鏈接時(shí),加入額外的啟動代碼。鏈接為一個(gè)文件時(shí),需要進(jìn)行符號解析和地址重定位。第12頁,共91頁。GCC編譯器GCC 編譯器在編譯一個(gè)C語言程序時(shí)需要經(jīng)過以下 4 步: 將C語言源程序預(yù)處理,生成.i文件。預(yù)處理后的.i文件編譯成為匯編語言,生成.s文件。將匯編語言文件經(jīng)過匯編,生成目標(biāo)文件.o文件。將各個(gè)模塊的.o文件鏈接起來生成一個(gè)可執(zhí)行程序文件。第13頁,共91頁。GCC編譯器第14頁,共91頁。GCC -E選項(xiàng)在正常的情況下,GCC 不會保留預(yù)處理階段的
7、輸出文件,也即.i文件。然而,可以利用-E選項(xiàng)保留預(yù)處理器的輸出文件,以用于診斷代碼。-E選項(xiàng)指示 GCC 在預(yù)處理完畢之后即可停止。表示把預(yù)處理的結(jié)果導(dǎo)出到 circle.i 文件。第15頁,共91頁。GCC -S選項(xiàng)通常情況下,GCC 把匯編語言輸出存儲到臨時(shí)文件中,并且在匯編器執(zhí)行完后立刻刪除它們。但是可以使用-S選項(xiàng),讓編譯程序在生成匯編語言輸出之后立刻停止。編譯器預(yù)處理 circle.c,將其翻譯成匯編語言,并將結(jié)果存儲在 circle.s 文件中。第16頁,共91頁。GCC -c選項(xiàng)-c選項(xiàng)表示編譯、匯編指定的源文件(也就是編譯源文件),但是不進(jìn)行鏈接。使用-c選項(xiàng)可以將每一個(gè)源文
8、件編譯成對應(yīng)的目標(biāo)文件。第17頁,共91頁。變量計(jì)算機(jī)要處理的數(shù)據(jù)(諸如數(shù)字、文字、符號、圖形、音頻、視頻等)是以二進(jìn)制的形式存放在內(nèi)存中的;現(xiàn)實(shí)生活中我們會找一個(gè)小箱子來存放物品,計(jì)算機(jī)也是這個(gè)道理,我們需要先在內(nèi)存中找一塊區(qū)域,規(guī)定用它來存放整數(shù),并起一個(gè)好記的名字,方便以后查找。int a;這個(gè)語句的意思是:在內(nèi)存中找一塊區(qū)域,命名為 a,用它來存放整數(shù)。 a=123;在C語言中,這個(gè)過程叫做賦值(Assign)。賦值是指把數(shù)據(jù)放到內(nèi)存的過程。第18頁,共91頁。變量在定義變量時(shí),變量名可以是字母、數(shù)字和下劃線的組合。但是也不是隨便的組合,要注意以下幾個(gè)命名規(guī)則:1) 變量名的開頭必須是
9、字母或下劃線,不能是數(shù)字。2) 變量名中的字母是區(qū)分大小寫的。比如 a 和 A 是不同的變量名,num 和 Num 也是不同的變量名。3) 變量名絕對不可以是C語言關(guān)鍵字。4) 變量名中不能有空格。5) 變量名不能重復(fù)定義。第19頁,共91頁。變量第20頁,共91頁。常量常量是固定值,在程序執(zhí)行期間不會改變。這些固定的值,又叫做字面量。整數(shù)常量也可以帶一個(gè)后綴,后綴是 U 和 L 的組合,U 表示無符號整數(shù)(unsigned),L 表示長整數(shù)(long)。后綴可以是大寫,也可以是小寫,U 和 L 的順序任意。第21頁,共91頁。常量第22頁,共91頁。浮點(diǎn)常量浮點(diǎn)常量由整數(shù)部分、小數(shù)點(diǎn)、小數(shù)部
10、分和指數(shù)部分組成。您可以使用小數(shù)形式或者指數(shù)形式來表示浮點(diǎn)常量。第23頁,共91頁。字符常量字符常量是括在單引號中,例如,x 可以存儲在 char 類型的簡單變量中。在 C 中,有一些特定的字符,當(dāng)它們前面有反斜杠時(shí),它們就具有特殊的含義,被用來表示如換行符(n)或制表符(t)等。轉(zhuǎn)義序列含義a警報(bào)鈴聲n換行符第24頁,共91頁。字符串常量字符串字面值或常量是括在雙引號 中的。一個(gè)字符串包含類似于字符常量的字符:普通的字符、轉(zhuǎn)義序列和通用的字符。第25頁,共91頁。定義常量在 C 中,有兩種簡單的定義常量的方式:(1)使用 #define 預(yù)處理器。(2)使用 const 關(guān)鍵字。#defin
11、e 預(yù)處理器 #define identifier value第26頁,共91頁。定義常量第27頁,共91頁。定義常量const 關(guān)鍵字 const type variable = value;第28頁,共91頁。數(shù)據(jù)類型數(shù)據(jù)是放在內(nèi)存中的,變量是給這塊內(nèi)存起的名字,有了變量就可以找到并使用這份數(shù)據(jù)。諸如數(shù)字、文字、符號、圖形、音頻、視頻等數(shù)據(jù)都是以二進(jìn)制形式存儲在內(nèi)存中的,內(nèi)存中的數(shù)據(jù)有多種解釋方式,使用之前必須要確定;上面的int a;就表明,這份數(shù)據(jù)是整數(shù),不能理解為像素、聲音等。int 有一個(gè)專業(yè)的稱呼,叫做數(shù)據(jù)類型(Data Type)。第29頁,共91頁。數(shù)據(jù)類型因?yàn)樵贑語言中,每
12、一種數(shù)據(jù)類型所占用的字節(jié)數(shù)都是固定的,知道了數(shù)據(jù)類型,也就知道了數(shù)據(jù)的長度。第30頁,共91頁。數(shù)據(jù)類型第31頁,共91頁。數(shù)據(jù)類型第32頁,共91頁。數(shù)據(jù)類型第33頁,共91頁。算術(shù)運(yùn)算符算術(shù)運(yùn)算符按操作數(shù)個(gè)數(shù)可分為一元運(yùn)算符(含一個(gè)操作數(shù))和二元運(yùn)算符(含兩個(gè)操作數(shù))。一元運(yùn)算符的優(yōu)先級一般高于二元運(yùn)算符。一元運(yùn)算符:+(正號)、-(負(fù)號)、+(增1)、-(減1)。二元運(yùn)算符:+(求和)、-(求差)、*(求積)、/(求商)、(求余)。第34頁,共91頁。自增量運(yùn)算符第35頁,共91頁。相除運(yùn)算符當(dāng)運(yùn)算符 / 的操作數(shù)(被除數(shù)和除數(shù))均為整數(shù)時(shí),結(jié)果為取商(取整)。例如:16/5 結(jié)果為兩數(shù)
13、相除的商 3。當(dāng)運(yùn)算符 / 的操作數(shù)中有一個(gè)或兩個(gè)浮點(diǎn)數(shù)時(shí),結(jié)果與數(shù)學(xué)中除法運(yùn)算相同,包含整數(shù)部分和小數(shù)部分。例如:8/2.5 結(jié)果為 3.2。第36頁,共91頁。取余運(yùn)算符當(dāng)運(yùn)算符 的操作數(shù)(被除數(shù)和除數(shù))均為整數(shù)時(shí),結(jié)果為取余。例如:16%5 結(jié)果為兩數(shù)相除的余數(shù) 1。當(dāng)運(yùn)算符 的操作數(shù)中有一個(gè)或兩個(gè)浮點(diǎn)數(shù)時(shí),語法錯(cuò)誤。例如:8%2.5 語法錯(cuò)誤。即運(yùn)算符兩操作數(shù)都必須為整數(shù),否則語法錯(cuò)誤。第37頁,共91頁。關(guān)系運(yùn)算符第38頁,共91頁。邏輯運(yùn)算符第39頁,共91頁。位運(yùn)算符第40頁,共91頁。位運(yùn)算符第41頁,共91頁。printf()函數(shù)printf() 是最靈活、最復(fù)雜、最常用的輸
14、出函數(shù)。格式控制符說明%c輸出一個(gè)單一的字符%hd、%d、%ld以十進(jìn)制、有符號的形式輸出 short、int、long 類型的整數(shù)%hu、%u、%lu以十進(jìn)制、無符號的形式輸出 short、int、long 類型的整數(shù)%f、%lf以十進(jìn)制的形式輸出 float、double 類型的小數(shù)%s輸出一個(gè)字符串第42頁,共91頁。printf()函數(shù)輸出一個(gè) 44 的整數(shù)矩陣,為了增強(qiáng)閱讀性,數(shù)字要對齊。第43頁,共91頁。printf()函數(shù)printf() 格式控制符的完整形式如下:%flagwidth.precisiontype1) type 表示輸出類型,比如 %d、%f、%c、%lf,ty
15、pe 就分別對應(yīng) d、f、c、lf;再如,%-9d中 type 對應(yīng) d。2) width 表示最小輸出寬度,也就是至少占用幾個(gè)字符的位置;例如,%-9d中 width 對應(yīng) 9,表示輸出結(jié)果最少占用 9 個(gè)字符的寬度。3) precision 表示輸出精度,也就是小數(shù)的位數(shù)。第44頁,共91頁。printf()函數(shù)輸出一個(gè) 44 的整數(shù)矩陣,為了增強(qiáng)閱讀性,數(shù)字要對齊。第45頁,共91頁。scanf()函數(shù)scanf通過鍵盤給程序中的變量賦值,和 printf 的功能正好相反。scanf(輸入控制符, 輸入?yún)?shù));功能:將從鍵盤輸入的字符轉(zhuǎn)化為“輸入控制符”所規(guī)定格式的數(shù)據(jù),然后存入以輸入?yún)?/p>
16、數(shù)的值為地址的變量中。在 scanf 的使用中一定要記?。弘p引號內(nèi)永遠(yuǎn)都不要加“非輸入控制符”。除了“輸入控制符”之外,什么都不要加,否則就是自找麻煩。而且對于用戶而言,肯定是輸入越簡單越好。第46頁,共91頁。scanf()函數(shù)scanf 只要掌握以下五點(diǎn): (1)在 scanf 的“輸入?yún)?shù)”中,變量前面的取地址符&不要忘記。(2)scanf 中雙引號內(nèi),除了“輸入控制符”外什么都不要寫。(3)“輸出控制符”和“輸出參數(shù)”無論在“順序上”還是在“個(gè)數(shù)上”一定要一一對應(yīng)。(4)“輸入控制符”的類型和變量所定義的類型一定要一致。(5)使用 scanf 之前先用 printf 提示輸入。第47頁
17、,共91頁。if else語句第48頁,共91頁。for循環(huán)第49頁,共91頁。break和continue當(dāng) break 關(guān)鍵字用于 while、for 循環(huán)時(shí),會終止循環(huán)而執(zhí)行整個(gè)循環(huán)語句后面的代碼。continue 語句的作用是跳過循環(huán)體中剩余的語句而強(qiáng)制進(jìn)入下一次循環(huán)。第50頁,共91頁。switch caseC語言雖然沒有限制 if else 能夠處理的分支數(shù)量,但當(dāng)分支過多時(shí),用 if else 處理會不太方便,而且容易出現(xiàn) if else 配對出錯(cuò)的情況。第51頁,共91頁。switch case1) case 后面必須是一個(gè)整數(shù),或者是結(jié)果為整數(shù)的表達(dá)式,但不能包含任何變量。d
18、efault 不是必須的。當(dāng)沒有 default 時(shí),如果所有 case 都匹配失敗,那么就什么都不執(zhí)行。第52頁,共91頁。數(shù)組的概念和定義一組數(shù)據(jù)的集合稱為數(shù)組(Array)它所包含的每一個(gè)數(shù)據(jù)叫做數(shù)組元素(Element)所包含的數(shù)據(jù)的個(gè)數(shù)稱為數(shù)組長度(Length)數(shù)組中的每個(gè)元素都有一個(gè)序號,這個(gè)序號從0開始,稱為下標(biāo)(Index)arrayName 為數(shù)組名稱,index 為下標(biāo)。例如,a0 表示第0個(gè)元素,a3 表示第3個(gè)元素。第53頁,共91頁。數(shù)組的概念和定義dataType 為數(shù)據(jù)類型,arrayName 為數(shù)組名稱,length 為數(shù)組長度。1) 數(shù)組中每個(gè)元素的數(shù)據(jù)類型
19、必須相同2)數(shù)組長度 length 最好是整數(shù)或者常量表達(dá)式3)訪問數(shù)組元素時(shí),過大或過小都會越界,導(dǎo)致數(shù)組溢出第54頁,共91頁。數(shù)組的概念和定義先定義數(shù)組再給數(shù)組賦值,我們也可以在定義數(shù)組的同時(shí)賦值,例如:數(shù)組元素的值由 包圍,各個(gè)值之間以,分隔。1) 可以只給部分元素賦值。當(dāng) 中值的個(gè)數(shù)少于元素個(gè)數(shù)時(shí),只給前面部分元素賦值。第55頁,共91頁。數(shù)組的概念和定義1) 可以只給部分元素賦值。當(dāng) 中值的個(gè)數(shù)少于元素個(gè)數(shù)時(shí),只給前面部分元素賦值。例如:表示只給 a0a4 5個(gè)元素賦值,而后面 5 個(gè)元素自動初始化為 0。我們可以通過下面的形式將數(shù)組的所有元素初始化為 0:第56頁,共91頁。數(shù)組
20、的概念和定義2) 只能給元素逐個(gè)賦值,不能給數(shù)組整體賦值。例如,不能寫:3) 如給全部元素賦值,那么在定義數(shù)組時(shí)可以不給出數(shù)組長度。例如:第57頁,共91頁。二維數(shù)組二維數(shù)組定義的一般形式是:其中,dataType 為數(shù)據(jù)類型,arrayName 為數(shù)組名,length1 為第一維下標(biāo)的長度,length2 為第二維下標(biāo)的長度。二維數(shù)組在概念上是二維的,但在內(nèi)存中是連續(xù)存放的;一種是按行排列,另一種是按列排列,在C語言中,二維數(shù)組是按行排列的。第58頁,共91頁。二維數(shù)組一個(gè)學(xué)習(xí)小組有 5 個(gè)人,每個(gè)人有 3 門課程的考試成績,求該小組各科的平均分和總平均分。第59頁,共91頁。二維數(shù)組二維數(shù)
21、組的初始化可以按行分段賦值,也可按行連續(xù)賦值。例如,對于數(shù)組 a53,按行分段賦值應(yīng)該寫作:按行連續(xù)賦值應(yīng)該寫作:第60頁,共91頁。數(shù)組的存儲int a5;當(dāng)定義一個(gè)數(shù)組a時(shí),編譯器根據(jù)指定的元素個(gè)數(shù)和元素的類型分配確定大?。ㄔ仡愋痛笮≡貍€(gè)數(shù))的一塊內(nèi)存,并把這塊內(nèi)存的名字命名為 a。第61頁,共91頁。數(shù)組的存儲第62頁,共91頁。數(shù)組的存儲int a54;對于二維數(shù)組,它在邏輯上是由行和列組成的。因此,我們可以將上面的二維數(shù)組 a 分為三層來理解。第63頁,共91頁。數(shù)組的存儲在第一層,將數(shù)組 a 看作一個(gè)變量,該變量的地址為 &a,長度為 sizeof(a)。因?yàn)閿?shù)組的長度為元素?cái)?shù)
22、量乘以每個(gè)元素類型的大小,這里的二維數(shù)組 a 為 5 行 4 列共 20 個(gè)元素,每個(gè)元素占用 4 字節(jié),所以變量 a 占用 80 字節(jié)。在第二層,將數(shù)組 a 看作一個(gè)一維數(shù)組,由 a0、a1、a2、a3 與 a4 等 5 個(gè)元素組成。數(shù)組的首地址為 a 或 &a0(即數(shù)組首地址和第一個(gè)元素的地址相同,而每個(gè)數(shù)組元素的地址相差為 16,表示每個(gè)數(shù)組元素的長度為 16),使用 sizeof(a0) 可得到數(shù)組元素的長度。在第三層,將第二層中的每個(gè)數(shù)組元素看作一個(gè)單獨(dú)的數(shù)組。第二層中的每一個(gè)元素又由 4 個(gè)元素構(gòu)成,如 a0 又由 a00、a01、a02 與 a03 等 4 個(gè)元素組成。第64頁,
23、共91頁。第65頁,共91頁。C語言指針變量的定義和使用數(shù)據(jù)在內(nèi)存中的地址也稱為指針,如果一個(gè)變量存儲了一份數(shù)據(jù)的指針,我們就稱它為指針變量。定義指針變量與定義普通變量非常類似,不過要在變量名前面加星號*,格式為:datatype *name;datatype *name = value;第66頁,共91頁。C語言指針變量的定義和使用第67頁,共91頁。C語言指針變量的定義和使用指針變量存儲了數(shù)據(jù)的地址,通過指針變量能夠獲得該地址上的數(shù)據(jù),格式為:*pointer;雖然通過 *p 和 a 獲取到的數(shù)據(jù)一樣,但它們的運(yùn)行過程稍有不同:a 只需要一次運(yùn)算就能夠取得數(shù)據(jù),而 *p 要經(jīng)過兩次運(yùn)算,多
24、了一層“間接”,前者比后者的代價(jià)要高。第68頁,共91頁。C語言指針變量的定義和使用指針除了可以獲取內(nèi)存上的數(shù)據(jù),也可以修改內(nèi)存上的數(shù)據(jù),例如:第69頁,共91頁。C語言指針變量的定義和使用定義指針變量時(shí)的*和使用指針變量時(shí)的*意義完全不同。第1行代碼中*用來指明 p 是一個(gè)指針變量,第2行代碼中*用來獲取指針指向的數(shù)據(jù)。第70頁,共91頁。C語言指針變量的定義和使用指針變量也可以出現(xiàn)在普通變量能出現(xiàn)的任何表達(dá)式中,例如:第71頁,共91頁。C語言指針變量的定義和使用通過指針交換兩個(gè)變量的值。第72頁,共91頁。C語言指針變量的定義和使用指針變量保存的是地址,而地址本質(zhì)上是一個(gè)整數(shù),所以指針變
25、量可以進(jìn)行部分運(yùn)算,例如加法、減法、比較等。第73頁,共91頁。數(shù)組指針如果一個(gè)指針指向了數(shù)組,我們就稱它為數(shù)組指針(Array Pointer)。以指針的方式遍歷數(shù)組元素:第74頁,共91頁。數(shù)組指針使用數(shù)組指針來遍歷數(shù)組元素:第75頁,共91頁。數(shù)組指針引入數(shù)組指針后,我們就有兩種方案來訪問數(shù)組元素了,一種是使用下標(biāo),另外一種是使用指針。 1) 使用下標(biāo) 也就是采用 arri 的形式訪問數(shù)組元素。如果 p 是指向數(shù)組 arr 的指針,那么也可以使用 pi 來訪問數(shù)組元素,它等價(jià)于 arri。 2) 使用指針 也就是使用 *(p+i) 的形式訪問數(shù)組元素。另外數(shù)組名本身也是指針,也可以使用
26、*(arr+i) 來訪問數(shù)組元素,它等價(jià)于 *(p+i)。第76頁,共91頁。數(shù)組指針借助自增運(yùn)算符來遍歷數(shù)組元素: *p+ 應(yīng)該理解為 *(p+),每次循環(huán)都會改變 p 的值(p+ 使得 p 自身的值增加),以使 p 指向下一個(gè)數(shù)組元素。該語句不能寫為 *arr+,因?yàn)閍rr 是常量,而 arr+ 會改變它的值,是錯(cuò)誤的。第77頁,共91頁。數(shù)組指針假設(shè) p 是指向數(shù)組 arr 中第 n 個(gè)元素的指針,那么 *p+、*+p、(*p)+ 分別是什么意思呢?*p+ 等價(jià)于 *(p+),表示先取得第 n 個(gè)元素的值,再將 p 指向下一個(gè)元素。*+p 等價(jià)于 *(+p),會先進(jìn)行 +p 運(yùn)算,使得
27、p 的值增加,指向下一個(gè)元素,整體上相當(dāng)于 *(p+1),所以會獲得第 n+1 個(gè)數(shù)組元素的值。(*p)+ ,會先取得第 n 個(gè)元素的值,再對該元素的值加 1。第78頁,共91頁。字符數(shù)組和字符串用來存放字符的數(shù)組稱為字符數(shù)組,例如:在C語言中,沒有專門的字符串變量,可以將字符串直接賦值給字符數(shù)組,例如:第79頁,共91頁。字符數(shù)組和字符串字符數(shù)組只有在定義時(shí)才能將整個(gè)字符串一次性地賦值給它,一旦定義完了,就只能一個(gè)字符一個(gè)字符地賦值了。第80頁,共91頁。字符串字符串結(jié)束標(biāo)志在C語言中,字符串總是以0作為結(jié)尾,所以0也被稱為字符串結(jié)束標(biāo)志,或者字符串結(jié)束符。C語言在處理字符串時(shí),會從前往后逐個(gè)掃描字符,一旦遇到0就認(rèn)為到達(dá)了字符串的末尾,就結(jié)束處理。由 包圍的字符串會自動在末尾添加0。例如,abc123從表面看起來只包含了 6 個(gè)字符,其實(shí),C語言會在最后隱式地添加一個(gè)0。第81頁,共91頁。字符串字符串結(jié)束標(biāo)志將 26 個(gè)大寫英文字符存入字符數(shù)組,
溫馨提示
- 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 我國上市公司區(qū)域差異剖析:特征、成因與發(fā)展策略
- 骨肉瘤術(shù)后康復(fù)護(hù)理指南
- 硅晶片拋光工道德能力考核試卷含答案
- 純堿生產(chǎn)工崗前基礎(chǔ)常識考核試卷含答案
- 齒輪裝配工崗前競爭分析考核試卷含答案
- 苯乙烯-丙烯腈樹脂(SAN)裝置操作工安全實(shí)踐測試考核試卷含答案
- 林草種子工安全生產(chǎn)知識評優(yōu)考核試卷含答案
- 企業(yè)調(diào)休制度
- 2026廣西貴港桂平市尋旺鄉(xiāng)中心幼兒園招聘專任教師、安保人員3人備考題庫有完整答案詳解
- 人體胚胎發(fā)育:投資策略課件
- DB32T 4398-2022《建筑物掏土糾偏技術(shù)標(biāo)準(zhǔn)》
- (精確版)消防工程施工進(jìn)度表
- 保險(xiǎn)公司資產(chǎn)負(fù)債表、利潤表、現(xiàn)金流量表和所有者權(quán)益變動表格式
- 送貨單格式模板
- 防止激情違紀(jì)和犯罪授課講義
- XX少兒棋院加盟協(xié)議
- 五年級數(shù)學(xué)應(yīng)用題專題訓(xùn)練50題
- 2021年四川省資陽市中考數(shù)學(xué)試卷
- 河南省鄭氏中原纖維素有限公司年產(chǎn) 0.2 萬噸預(yù)糊化淀粉、0.5 萬噸羧甲基纖維素鈉、1.3 萬噸羧甲基淀粉鈉項(xiàng)目環(huán)境影響報(bào)告
- 高處作業(yè)安全培訓(xùn)課件
- c語言知識點(diǎn)思維導(dǎo)圖
評論
0/150
提交評論