![c語(yǔ)言基礎(chǔ)知識(shí)_第1頁(yè)](http://file2.renrendoc.com/fileroot_temp3/2021-11/26/4c6b86d7-2718-4a43-b043-903cf7824824/4c6b86d7-2718-4a43-b043-903cf78248241.gif)
![c語(yǔ)言基礎(chǔ)知識(shí)_第2頁(yè)](http://file2.renrendoc.com/fileroot_temp3/2021-11/26/4c6b86d7-2718-4a43-b043-903cf7824824/4c6b86d7-2718-4a43-b043-903cf78248242.gif)
![c語(yǔ)言基礎(chǔ)知識(shí)_第3頁(yè)](http://file2.renrendoc.com/fileroot_temp3/2021-11/26/4c6b86d7-2718-4a43-b043-903cf7824824/4c6b86d7-2718-4a43-b043-903cf78248243.gif)
![c語(yǔ)言基礎(chǔ)知識(shí)_第4頁(yè)](http://file2.renrendoc.com/fileroot_temp3/2021-11/26/4c6b86d7-2718-4a43-b043-903cf7824824/4c6b86d7-2718-4a43-b043-903cf78248244.gif)
![c語(yǔ)言基礎(chǔ)知識(shí)_第5頁(yè)](http://file2.renrendoc.com/fileroot_temp3/2021-11/26/4c6b86d7-2718-4a43-b043-903cf7824824/4c6b86d7-2718-4a43-b043-903cf78248245.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、C語(yǔ)言期末復(fù)習(xí)之基礎(chǔ)知識(shí)篇-楊士帥一 C語(yǔ)言概述Ø 程序:一組計(jì)算機(jī)能夠識(shí)別和執(zhí)行的指令。指令的有序的集合。Ø 計(jì)算機(jī)語(yǔ)言:人和計(jì)算機(jī)交流信息,計(jì)算機(jī)和人都能識(shí)別的語(yǔ)言Ø C語(yǔ)言的注釋:/單行注釋/*/多行注釋。Ø C語(yǔ)言的結(jié)構(gòu):1. 由一個(gè)或多個(gè)源程序文件組成。2. 函數(shù)是C程序的基本單位。3. 一個(gè)C程序至少含有一個(gè)main函數(shù),也可以由一個(gè)main函數(shù)和若干個(gè)其他函數(shù)組成。4. C的這些特點(diǎn)容易實(shí)現(xiàn)程序的模塊化。5. C程序總是從main函數(shù)開始執(zhí)行,而且不論main函數(shù)的位置如何。Ø 每個(gè)語(yǔ)句和數(shù)據(jù)的定義后面必須有一個(gè)括號(hào)。Ø
2、 C語(yǔ)言本身沒有輸入輸出函數(shù),輸入輸出操作是庫(kù)函數(shù)scanf和printf提供的。二 數(shù)據(jù)的類型和運(yùn)算(一) 常量:在程序運(yùn)行的過程中,其值不能被改變。1. 整型常量:1000.2. 實(shí)型常量:0.34,12.34e3.3. 字符常量:a,n.4. 字符串常量:“boy”。5. 符號(hào)常量:#define PI 3.1416(二) 變量:在程序運(yùn)行期間,變量的值是可以改變的。1. 變量必須先定義后使用。2. 剛定義尚未賦值的變量具有隨機(jī)值。3. 定義變量要同時(shí)定義名字和類型。4. 變量名和變量值是兩個(gè)不同的概念。i. 變量名實(shí)際是以這個(gè)名字代表一個(gè)內(nèi)存地址。ii. 變量值就是該內(nèi)存單元當(dāng)前存儲(chǔ)的
3、值。(三) 標(biāo)識(shí)符:一個(gè)對(duì)象的名字。1. 只能由字母,數(shù)字和下劃線三種字符組成,而且第一個(gè)字符必需為字母或下劃線。2. 標(biāo)識(shí)符的長(zhǎng)度無(wú)限制,但不能以關(guān)鍵字作為標(biāo)識(shí)符。3. 不合法的標(biāo)識(shí)符:M.D.John,#33,3D64,Include。(四) 數(shù)據(jù)類型:就是對(duì)數(shù)據(jù)分配儲(chǔ)存單元的安排,包括儲(chǔ)存單元的長(zhǎng)度以及數(shù)據(jù)的存儲(chǔ)形式。數(shù)據(jù)類型寬度Char1BShort int 2BInt4BLong int4BFloat4BDouble8BLong double80B整數(shù)的默認(rèn)時(shí)signed,各整數(shù)類型均可加修飾符unsigned表示無(wú)符號(hào)整數(shù)類型,unsigned int可以簡(jiǎn)寫成unsigned.1
4、. 整型:Ø 一個(gè)十進(jìn)制數(shù)是0到9的序列。Ø 十六進(jìn)制應(yīng)該加前綴0x。如:0xfa,0xAE03Ø 八進(jìn)制應(yīng)該加前綴0.如:030.Ø 使用科學(xué)記數(shù)法,e/E的后面絕對(duì)不能在跟小數(shù),且E/e的前面必須有值。2. 字符型:Ø 用單引號(hào)括起來的單個(gè)字符。如:a,0.實(shí)際上存儲(chǔ)的是該數(shù)據(jù)的ASCII碼。所以也可以把他們看成是整型量,C語(yǔ)言容許對(duì)整型變量賦以字符型,也允許對(duì)字符變量賦以整形值。3. 轉(zhuǎn)義字符:轉(zhuǎn)義字符含義bBackspacetTabn換行r回車”雙引號(hào)單引號(hào)反斜杠4. 字符串:Ø C語(yǔ)言中并沒有字符串類型,用字符數(shù)組來處理字符
5、串。Ø 字符串是由一對(duì)雙引號(hào)括起來的字符數(shù)列。Ø 字符串常量和字符常量的區(qū)別:Ø 字符常量由單引號(hào)括起來,字符串常量由雙引號(hào)括起來。Ø 字符常量只能是單個(gè)字符,字符串常量則可以是一個(gè)或多個(gè)字符。Ø 字符常量占一個(gè)字節(jié)的內(nèi)存空間,字符串所占的內(nèi)存空間常量等于字符串中的字符數(shù)加一。增加的一個(gè)字節(jié)中存放字符0.Ø ASCII為0,這是字符串結(jié)束的標(biāo)志。Ø Ex:Ø a在內(nèi)存中占一個(gè)字節(jié),“a”在內(nèi)存中占2個(gè)字節(jié)。5. 符號(hào)常量:Ø 在C語(yǔ)言中,可以用一個(gè)標(biāo)識(shí)符來表示一個(gè)常量,稱之為符號(hào)常量。符號(hào)常量在使用之前必
6、須先定義:#define標(biāo)識(shí)符常量名 常量值Ø #define是一條預(yù)處理命令,稱為宏定義命令,其功能是把該標(biāo)識(shí)符定義為其后的常量值。習(xí)慣上常量的標(biāo)識(shí)符用大寫字母,而變量名用小寫字母。(五) 運(yùn)算符:1. 算術(shù)運(yùn)算符:Ø 整數(shù)除法:兩個(gè)整數(shù)相除的結(jié)果為整數(shù)。Ex:5/3=1,舍去小數(shù)部分。-5/3=-1,向零取整。Ø 浮點(diǎn)除法:保證除數(shù)和被除數(shù)中至少有一個(gè)是浮點(diǎn)數(shù)。Ex:5/4.0=1.25.Ø %模運(yùn)算要求運(yùn)算元為整數(shù),結(jié)果也是整數(shù)。Ex:5%3=2.Ø C語(yǔ)言沒有乘方運(yùn)算,但pow函數(shù)可以實(shí)現(xiàn)乘方運(yùn)算。pow(x,y)x的y次方。#incl
7、ude<math.h>.算數(shù)運(yùn)算符的優(yōu)先級(jí)及結(jié)合性:先乘除后加減,從左至右。Ø 不同類型數(shù)據(jù)的混合運(yùn)算:類型的自動(dòng)轉(zhuǎn)換,編譯系統(tǒng)會(huì)自動(dòng)把各操作系統(tǒng)操縱數(shù)轉(zhuǎn)化為操作數(shù)中最長(zhǎng)的類型。EX:若int型及float或double型數(shù)據(jù)進(jìn)行運(yùn)算時(shí),系統(tǒng)會(huì)自動(dòng)把int及float型數(shù)據(jù)轉(zhuǎn)化為double型,然后在進(jìn)行運(yùn)算,結(jié)果時(shí)double型。2. 自加自減運(yùn)算符:Ø i+,i-:在使用i之后將i的值加/減1.Ø +I,-i:在使用i之前,先將i的值加/減1.3. 強(qiáng)制類型轉(zhuǎn)換:(double)a將a轉(zhuǎn)化為double類型。短類型->長(zhǎng)類型 安全長(zhǎng)類型-&g
8、t;短類型 有可能會(huì)丟失數(shù)據(jù)。4. 運(yùn)算符的優(yōu)先級(jí):1,()、(結(jié)構(gòu)體成員運(yùn)算符)、(指向結(jié)構(gòu)體成員運(yùn)算符) 2,單目運(yùn)算符 !(非)、(自減)、(自加)、(按位取反) 、正號(hào)(+)、負(fù)號(hào)(-)3,算術(shù)運(yùn)算符 *、 %、 /,+、-4,關(guān)系運(yùn)算符 <、 >、 >=、 <=, =、!= 5,邏輯運(yùn)算符 &&和| 6,賦值運(yùn)算符 = 7,逗號(hào)運(yùn)算符 (表達(dá)式1),(表達(dá)式2),(表達(dá)式3) 還有就是左右運(yùn)算順序 a+b +為雙目運(yùn)算符, (a>b)?a:b 中? :為3目運(yùn)算符 !a 為單目運(yùn)算符. 單目,三目運(yùn)算符都為自右向左結(jié)合,雙目運(yùn)算符除賦值運(yùn)
9、算符都為自左向右結(jié)合5. 關(guān)系運(yùn)算符:>,<,>=,<=,=,!=.用來比較兩個(gè)操作數(shù)之間的關(guān)系,運(yùn)算結(jié)果為1或0.6. 邏輯運(yùn)算符:!,&&,|。用來實(shí)現(xiàn)邏輯運(yùn)算和邏輯判斷。用非0表示邏輯值的true,用0表示邏輯值的false。7. 條件運(yùn)算符:三目運(yùn)算符:表達(dá)式a?表達(dá)式b:表達(dá)式c若表達(dá)式的值非0,則返回表達(dá)式b的值;若表達(dá)式的a的值為0,則返回表達(dá)式c的值。8. 逗號(hào)運(yùn)算符:用來將若干獨(dú)立的表達(dá)式分隔并連接構(gòu)成一個(gè)逗號(hào)表達(dá)式。9. 賦值運(yùn)算符:變量=表達(dá)式。右結(jié)合性。三 輸入輸出函數(shù)(一) 控制臺(tái)I/O:程序及外界交流。(二) C語(yǔ)言中所有的I
10、/O都是由庫(kù)函數(shù)完成的,要用#include將相關(guān)頭文件包含在源文件當(dāng)中。使用標(biāo)準(zhǔn)輸入輸出函數(shù)時(shí)要用到stdio.h文件。(三) 格式輸出函數(shù):printf(“格式控制字符串”,表達(dá)式列表)。格式字符意義d,i以帶符號(hào)的十進(jìn)制輸出整數(shù)o以八進(jìn)制形式輸出無(wú)符號(hào)整數(shù)(不帶前綴0)X,x以十六進(jìn)制的無(wú)符號(hào)數(shù)輸出整數(shù)(不帶前綴0x)u以無(wú)符號(hào)的十進(jìn)制形式輸出整數(shù)f以小數(shù)的形式輸出單,雙精度實(shí)數(shù),隱含6位小數(shù)E,e以指數(shù)的形式輸出單,雙精度實(shí)數(shù)G,g以%f或%e中較短的輸出寬度輸出單、雙精度實(shí)數(shù)c輸出單個(gè)字符s輸出字符串格式修飾符:¡ %-m.nlf,%-mld字符說明l用于輸出長(zhǎng)整形數(shù)據(jù)以及
11、double型數(shù)據(jù)m數(shù)據(jù)顯示的最小寬度n對(duì)實(shí)數(shù),表示輸出n位小數(shù)。對(duì)字符串,表示截取的字符個(gè)數(shù)。-輸出的數(shù)字或字符在顯示寬度區(qū)域內(nèi)左對(duì)齊。Ø 未指定輸出寬度m,則按實(shí)際位數(shù)輸出。Ø 未指定小數(shù)位數(shù),默認(rèn)6位。Ø 寬度計(jì)算中小數(shù)點(diǎn)要占一位。Ø 若數(shù)據(jù)實(shí)際寬度比制定寬度要小,默認(rèn)右對(duì)齊,即左補(bǔ)空格。有修飾符-,則左對(duì)齊,即右補(bǔ)空格。Ø 若數(shù)據(jù)的實(shí)際寬度比指定寬度大,則按實(shí)際寬度輸出。<4>格式輸入函數(shù):用戶用指定的格式從盤上把數(shù)據(jù)輸入到指定的變量中。scanf(“格式控制字符”,變量地址列表);Ø 在scanf語(yǔ)句的格式字符串
12、中,如果沒有非格式字符在“%d%d%d”之間做輸入時(shí)的間隔,在輸入時(shí)要用一個(gè)或一個(gè)以上的空格或回車或TAB鍵作為輸入數(shù)據(jù)之間的間隔。Ø scanf函數(shù)中的格式控制后面應(yīng)當(dāng)是變量地址,而不是變量名。Ø 不能用格式控制來規(guī)定輸入數(shù)據(jù)的精度。¡ : scanf("%7.2f",&a); ×scanf("%f", &a); Ø 如果輸入在格式控制字符串中除了格式字符還有其它字符,那么在輸入時(shí)這些字符將被作為間隔符,要輸入相同的字符。Ø scanf(“a=%d,b=%d",&am
13、p;a,&b)a=12,b=34在輸入數(shù)據(jù)時(shí)遇到以下情況,則認(rèn)為是一個(gè)數(shù)據(jù)輸入的結(jié)束:遇到空格鍵,回車鍵,tab鍵。滿足域?qū)?,?4d,輸入4位結(jié)束。遇到非法字符。Ø 在輸入字符型數(shù)據(jù)時(shí),若格式控制字符中沒有非格式字符,則認(rèn)為所有輸入的字符均為有效字符。¡ 如: scanf("%c%c%c",&a,&b,&c);l 只有當(dāng)輸入為:def 時(shí)(即:不能有間隔),才能把d賦于a,e賦予b,'f'賦予c。四 流程控制(一) 順序:Ø 按語(yǔ)句的先后順序依次執(zhí)行。Ø 復(fù)合語(yǔ)句:可用括起來的多個(gè)語(yǔ)句
14、,構(gòu)成一個(gè)復(fù)合語(yǔ)句。在C語(yǔ)言中復(fù)合語(yǔ)句被認(rèn)為是一條語(yǔ)句。(二) 分支:if語(yǔ)句:實(shí)現(xiàn)兩個(gè)分支的選擇結(jié)構(gòu)。最常用的3種if語(yǔ)句的形式:1. if (表達(dá)式) 語(yǔ)句1 (沒有else子句)2. if (表達(dá)式) 語(yǔ)句1 else 語(yǔ)句2 (有else子句)3. if(表達(dá)式) 語(yǔ)句 else if(表達(dá)式) 語(yǔ)句 else if(表達(dá)式) 語(yǔ)句 else if(表達(dá)式) 語(yǔ)句 else 語(yǔ)句m+1IF嵌套:在if語(yǔ)句中又包含一個(gè)或多個(gè)if語(yǔ)句稱為if語(yǔ)句的嵌套。else總是及它上面最近的為配對(duì)的if配對(duì)。if( ) if( ) 語(yǔ)句1 else 語(yǔ)句2 else if( ) 語(yǔ)句3 else 語(yǔ)句
15、4 Switch語(yǔ)句:實(shí)現(xiàn)多分支的選擇結(jié)構(gòu)。根據(jù)表達(dá)式的值,使流程跳轉(zhuǎn)到不同的語(yǔ)句。switch語(yǔ)句的一般格式:switch(表達(dá)式) case 常量1 :語(yǔ)句1 case 常量2 :語(yǔ)句2 case 常量n :語(yǔ)句n default : 語(yǔ)句n+1switch語(yǔ)句中表達(dá)式和常量可以是整形以及字符型。任何兩個(gè)case后面的常量不可有相同的值。先計(jì)算表達(dá)式的值,在根據(jù)表達(dá)式的值轉(zhuǎn)向不同的分支。每個(gè)case分支的語(yǔ)句無(wú)需用括起來。每個(gè)case分支都是入口點(diǎn)。break語(yǔ)句時(shí)轉(zhuǎn)移語(yǔ)句,即跳出switch,無(wú)break語(yǔ)句,將執(zhí)行入口點(diǎn)之后的所有語(yǔ)句。(三) 循環(huán):Ø While(表達(dá)式)
16、語(yǔ)句先判斷循環(huán)條件表達(dá)式的值,若為真,則執(zhí)行循環(huán)體;若為假則不執(zhí)行循環(huán)體語(yǔ)句。Ø do循環(huán)體語(yǔ)句whilie(表達(dá)式)先無(wú)條件執(zhí)行一次循環(huán)體,然后在判斷循環(huán)條件是否成立。Ø For(表達(dá)式1;表達(dá)式2;表達(dá)式3)循環(huán)體語(yǔ)句。表達(dá)式1:為循環(huán)變量設(shè)置初始值。表達(dá)式2:判斷是否繼續(xù)循環(huán)。表達(dá)式3:修改循環(huán)變量的值。循環(huán)嵌套:一個(gè)循環(huán)體內(nèi)又包含另一個(gè)完整的循環(huán)結(jié)構(gòu),稱之為循環(huán)嵌套。內(nèi)層循環(huán)中還可以嵌套循環(huán),這就是多層循環(huán)。3種循環(huán)可以互相嵌套。三種循環(huán)的比較:Ø 一般情況下,三種循環(huán)可以互相代替。Ø 循環(huán)中應(yīng)包含使循環(huán)趨于結(jié)束的語(yǔ)句。Ø 用while
17、和dowhile循環(huán)變量操作應(yīng)在while和dowhile之前完成。而for語(yǔ)句可以在表達(dá)式1中實(shí)現(xiàn)循環(huán)變量的初始化。Ø Break:從循環(huán)體中強(qiáng)行退出,結(jié)束整個(gè)循環(huán)。Ø Continue:停止本次循環(huán),直接開始下次循環(huán)。五 函數(shù)使用角度來看函數(shù)包括庫(kù)函數(shù)和用戶自定義函數(shù)。庫(kù)函數(shù):由C系統(tǒng)提供,用戶無(wú)須定義,也不必在程序中作類型說明,只需在程序中包含有該函數(shù)的頭文件即可在程序中直接調(diào)用。用戶自定義函數(shù):用戶按照需要自己編寫的函數(shù)。從函數(shù)形式來看:函數(shù)分為無(wú)參數(shù)函數(shù)和有參數(shù)函數(shù)。無(wú)參數(shù)函數(shù):無(wú)參數(shù)函數(shù)一般用來執(zhí)行一組操作。無(wú)參數(shù)函數(shù)可以帶回或不帶回函數(shù)值。有參數(shù)函數(shù):在調(diào)用函
18、數(shù)時(shí),主調(diào)函數(shù)要通過參數(shù)向被調(diào)函數(shù)傳遞數(shù)據(jù)。函數(shù)可以帶回或者不帶回函數(shù)值。一般情況下,被調(diào)函數(shù)會(huì)返回一個(gè)函數(shù)值,供主函數(shù)使用。一個(gè)C程序由一個(gè)或多個(gè)程序模塊組成,每一個(gè)程序模塊作為一個(gè)源程序文件。對(duì)較大的程序,一般不希望將所有的內(nèi)容都放在一個(gè)文件中,而是將它們分別放在若干個(gè)源文件當(dāng)中,由若干個(gè)源文件組成一個(gè)C程序。一個(gè)源程序文件由一個(gè)或多個(gè)函數(shù)及其他相關(guān)語(yǔ)句組成。一個(gè)源程序文件是一個(gè)編譯的單位,在程序進(jìn)行編譯是以源程序文件為單位進(jìn)行編譯的,而不死以函數(shù)為單位進(jìn)行編譯的。C程序的執(zhí)行是從main函數(shù)開始的,如果在main函數(shù)的執(zhí)行過程中調(diào)用其他函數(shù),調(diào)用函數(shù)結(jié)束后流程返回到main函數(shù),main
19、函數(shù)結(jié)束時(shí)整個(gè)程序運(yùn)行結(jié)束。所有函數(shù)都是平行和平等的,即在定義函數(shù)時(shí)是分別進(jìn)行的,互相獨(dú)立的,一個(gè)函數(shù)并不從屬于另一個(gè)函數(shù),即函數(shù)不能嵌套定義。函數(shù)間可以互相調(diào)用,但不能調(diào)用main函數(shù),main函數(shù)是被操作系統(tǒng)所調(diào)用。定義函數(shù):C語(yǔ)言要求在程序中遇到的所有函數(shù),必須先定義后使用。函數(shù)的定義指明了函數(shù)名,函數(shù)返回值類型,函數(shù)實(shí)現(xiàn)的功能以及參數(shù)的個(gè)數(shù)及類型,將這些信息通知給編譯系統(tǒng)。函數(shù)定義格式:類型名 函數(shù)名(形式參數(shù)表列)函數(shù)體類型說明了函數(shù)返回值的類型,它可以是任何有效類型,如果省略,默認(rèn)為int。參數(shù)列表使用逗號(hào)分割變量表,各變量表由類型和變量名組成,參數(shù)列表可以為空,表示無(wú)參,但此括號(hào)
20、不能省略,不管定義還是聲明時(shí),每個(gè)函數(shù)參數(shù)必須同時(shí)含有類型和參數(shù)名??蘸瘮?shù):中類容為空,調(diào)用函數(shù),什么也不做,目的時(shí)方便以后對(duì)功能的擴(kuò)充,而不會(huì)影響程序的結(jié)構(gòu)。函數(shù)的返回:return表達(dá)式。用途:使得本函數(shù)立即退出,返回到調(diào)用語(yǔ)句的地方,返回一個(gè)值。函數(shù)可以用兩種方法停止運(yùn)行并返回到調(diào)用它的地方:執(zhí)行到函數(shù)最后一個(gè)語(yǔ)句。遇到return語(yǔ)句,函數(shù)的返回值是靠return語(yǔ)句獲得的。如果不希望函數(shù)有返回值,將函數(shù)類型聲明為void。除了類型為void函數(shù)外,其他函數(shù)均有返回值,該值由return語(yǔ)句決定,如果沒有return語(yǔ)句函數(shù)將返回一個(gè)不確定的值。如果函數(shù)沒有指明函數(shù)返回值的類型,默認(rèn)為
21、int。當(dāng)函數(shù)的返回值不是整型時(shí),應(yīng)該:明確說明函數(shù)的類型。函數(shù)聲明位于第一次調(diào)用之前。參數(shù)傳遞:C語(yǔ)言中的函數(shù)調(diào)用傳遞參數(shù)是按值傳送。如果實(shí)參的修改通過形參帶回主調(diào)函數(shù),用指針。用數(shù)組作為函數(shù)參數(shù)時(shí),就把數(shù)組的地址傳給了參數(shù)。函數(shù)的作用域:每個(gè)函數(shù)都是一個(gè)獨(dú)立的代碼塊,一個(gè)函數(shù)的代碼屬于該函數(shù)專有。一個(gè)代碼塊中定義的變量成為局部變量,局部變量隨代碼塊的產(chǎn)生而產(chǎn)生,隨代碼塊的退出而消亡。函數(shù)的形參也是局部變量。在任何一個(gè)函數(shù)之外定義的變量成為全局變量,可以被任何一個(gè)函數(shù)訪問,修改。在函數(shù)內(nèi)部用存儲(chǔ)類型符static說明變量不隨函數(shù)的運(yùn)行,退出而產(chǎn)生,消亡。但仍然只能在函數(shù)內(nèi)部訪問它。如果全局變
22、量和局部變量同名,局部變量屏蔽全局變量。函數(shù)的嵌套調(diào)用:C語(yǔ)言容許在一個(gè)在一個(gè)函數(shù)的定義中出現(xiàn)對(duì)另一個(gè)函數(shù)的調(diào)用。這樣就出現(xiàn)了函數(shù)的嵌套調(diào)用。即在被調(diào)函數(shù)中又調(diào)用其他函數(shù)。六 數(shù)組數(shù)組是一組有序數(shù)據(jù)的集合,下標(biāo)代表了數(shù)據(jù)在數(shù)組中的序號(hào)。用數(shù)組名和下標(biāo)唯一確定數(shù)組中的元素。數(shù)組中每一個(gè)元素都必須屬于同一個(gè)數(shù)據(jù)類型。一維數(shù)組的定義:類型 數(shù)組名 常量表達(dá)式數(shù)組名的命名規(guī)則及變量命名規(guī)則相同,數(shù)組也必須先定義后使用。數(shù)組類型實(shí)際上是數(shù)組元素的取值類型。對(duì)于同一數(shù)組,其所有元素的數(shù)據(jù)類型都是相同的。數(shù)組民是用戶定義的標(biāo)識(shí)符,不能及其他變量名相同。定義數(shù)組時(shí),方括號(hào)必須是一個(gè)常量表達(dá)式,表示數(shù)據(jù)的元素個(gè)
23、數(shù),也稱為數(shù)組長(zhǎng)度??梢允欠?hào)常量或常量表達(dá)式,但不能時(shí)變量。一維數(shù)組的使用:使用數(shù)組就是使用他的元素。數(shù)組的元素和普通變量一樣,只不過是名字有些特殊。數(shù)組元素的一般表示形式:數(shù)組名下標(biāo)序號(hào)使用數(shù)組時(shí),數(shù)組下標(biāo)可以是常量,變量和表達(dá)式,從0開始。一維數(shù)組的初始化:Int a10=0,1,2,3,4,5,6,7,8,9;可以只給部分元素賦值,當(dāng)中元素少于元素個(gè)數(shù)時(shí),系統(tǒng)自動(dòng)給前面元素賦值,其余元素自動(dòng)賦0。Int a10=1,2,3,4,5;只能給逐個(gè)元素賦值,而不能給數(shù)組整體賦值。¡ 給十個(gè)元素全部賦3,只能寫為:int a10=3,3,3,3,3,3,3,3,3,3;¡
24、而不能寫為:int a10=3; 在定義數(shù)組時(shí),若要給全部元素賦值,可以省略數(shù)組元素的長(zhǎng)度。¡ 如: int a5=1,2,3,4,5;¡ 可寫為: int a=1,2,3,4,5;二維數(shù)組的定義:類型 變量名 常量表達(dá)式1常量表達(dá)式2二位數(shù)組的使用:數(shù)組名 下標(biāo)1下標(biāo)2數(shù)組中元素順序:C語(yǔ)言中,二維數(shù)組是按行儲(chǔ)存的。l int a34a00a01a02a03a10a11a12a13a20a21a22a23二維數(shù)組的初始化:Int a53=80,75,92, 61,65,71, 59,63,70, 85,87,90, 76,77,85;如對(duì)全部元素賦值,行下表可以省略,但列
25、下表不能省略。 int a33=1,2,3,4,5,6,7,8,9;可以寫為: int a3=1,2,3,4,5,6,7,8,9;字符數(shù)組:charc10;字符數(shù)組的初始化:如果初始值小于數(shù)組長(zhǎng)度,則將這些字符賦給數(shù)組中前面的那些元素,其余元素自動(dòng)定位空字符。字符0作為字符串的結(jié)束標(biāo)志。字符串處理函數(shù):輸入字符串到字符數(shù)組。scanf(”%s”,字符數(shù)組名);gets(字符數(shù)組名);l char st20; gets(st); scanf(“%s”, st);把字符數(shù)組中存放的字符串輸出:¡ printf(“%s”, 字符數(shù)組名)¡ puts(字符數(shù)組名)l char st
26、20=”China”; puts(st); printf(“%s”, st); #include<string.h>stract(字符串1,字符串2)把字符串2鏈接到字符串1后面。Strcpy(字符串1,字符串2)把字符串2的內(nèi)容拷貝的字符串1(覆蓋)strcmp(字符串1,字符串2)按照ASCII碼順序比較兩個(gè)字符串,返回比較結(jié)果。字符串1=字符串2,返回值=0;字符串1>字符串2,返回值>0;字符串1<字符串2,返回值<0;Strlen(字符串)返回字符串中包含的字符個(gè)數(shù)(不包括結(jié)束標(biāo)志0)Strlwr(字符串)將大寫字母轉(zhuǎn)化成小寫字母。strupr(字
27、符串)將小寫字母轉(zhuǎn)換成大寫字母。AZ:41H-50Haz:61H-70H七 結(jié)構(gòu)體定義結(jié)構(gòu)體的類型:struct 結(jié)構(gòu)體名成員列表=類型名+變量名;結(jié)構(gòu)體可以嵌套引用,即一個(gè)結(jié)構(gòu)體的定義中可以引用其他結(jié)構(gòu)體類型。struct Date int month; int day; int year; ;struct Stu int num;char name20; char sex;int age; struct Date birthday; char addr30; 結(jié)構(gòu)體類型及結(jié)構(gòu)體變量是不同的概念,相當(dāng)于變量類型和變量。只能對(duì)變量賦值,存取或運(yùn)算,而不能對(duì)一個(gè)類型賦值,存取或運(yùn)算。在編譯時(shí),對(duì)
28、類型是不分配空間的,只對(duì)變量分配空間。定義結(jié)構(gòu)體類型的變量:1. 先聲明結(jié)構(gòu)體類型,再定義該類型變量struct studentint num;char name20;char sex; int age;float score; char addr30; struct studentstu1 , stu2;2. 在聲明類型的同時(shí)定義變量struct Student int num; char name20; char sex; int age; float score; char addr30; student1,student2;3. 不指定類型名而直接定義結(jié)構(gòu)體類型變量l 其格式為: st
29、ruct成員表列 變量名表列; 結(jié)構(gòu)體變量的初始化:Struct dateInt month;Int day;Int year;Struct date birthday=10,22,83;使用結(jié)構(gòu)體變量:只能通過成員運(yùn)算符引用結(jié)構(gòu)體變量的各個(gè)成員,一般不能對(duì)結(jié)構(gòu)體變量整體使用。¡ 結(jié)構(gòu)體變量名.成員名 ¡ 如:stu1.numbirthday.year如果成員本身又是一個(gè)結(jié)構(gòu)體類型,則要用若干個(gè)成員運(yùn)算符,一級(jí)一級(jí)找到最低一級(jí)的成員。¡ 如:stu2.birthday.day對(duì)結(jié)構(gòu)體變量的成員可以像普通變量一樣進(jìn)行各種運(yùn)算。stu1.num+;類型定義在前,不分配
30、內(nèi)存,變量定義后,給變量分配一段連續(xù)的內(nèi)存單元。結(jié)構(gòu)體成員名可及程序中的其他變量同名,二者占不同的內(nèi)存單元互不干擾。結(jié)構(gòu)體數(shù)組:就是數(shù)組中的每一個(gè)元素都是一個(gè)結(jié)構(gòu)體類型的變量。struct Personchar name20; int num; teacher3=“Li”,1,“Zhang”,2,“Sun”,3;指向結(jié)構(gòu)體變量的指針:指向結(jié)構(gòu)體對(duì)象的指針變量既可以指向結(jié)構(gòu)體變量,也可以用來指向結(jié)構(gòu)體數(shù)組中的元素。指向結(jié)構(gòu)圖變量的指針,其類型必須及結(jié)構(gòu)體變量類型相同。 struct Student *p; 為了使用方便和直觀,C語(yǔ)言允許把(*p).num用p->num來代替。結(jié)構(gòu)體變量做函
31、數(shù)參數(shù):用結(jié)構(gòu)體變量的成員作參數(shù):例如,用stu1.num或作函數(shù)實(shí)參,將實(shí)參值傳給形參用結(jié)構(gòu)體變量做參數(shù):用結(jié)構(gòu)體變量做實(shí)參時(shí),將結(jié)構(gòu)體變量所占的內(nèi)存單元的內(nèi)容全部按順序傳給形參,形參也必須是同類型的結(jié)構(gòu)體變量。用指向結(jié)構(gòu)體變量:指針做實(shí)參,將結(jié)構(gòu)體變量的地址傳給形參。八 指針內(nèi)存單元的地址稱之為指針。變量A中存放變量B的地址,稱A是B的指針,即A指向B.定義指針變量:Type*nametype可以時(shí)C語(yǔ)言中的任何一種類型。指針運(yùn)算符:&一元運(yùn)算符,返回變量的內(nèi)存地址。*一元運(yùn)算符,返回指針?biāo)赶蜃兞康闹?。指針指向變量:Int a;Int *p;P=&a;指
32、針賦值:及其他變量一樣,指針變量也可以出現(xiàn)在賦值語(yǔ)句中,將一個(gè)指針變量的值賦給另一個(gè)指針變量。指針運(yùn)算:+和-Int *p,當(dāng)前p的值為2000,由于整型數(shù)占4個(gè)字節(jié),p+的值將變成2019,p-值將變?yōu)?996.p每遞增一次就指向下一個(gè)整形數(shù),遞減時(shí)也一樣。指針比較:int *p=10,*q=20; if(p<q)l 比較的是兩個(gè)指針?biāo)赶虻膬?nèi)存地址的大小指針及數(shù)組:指針及數(shù)組是緊密相連的。一個(gè)變量有地址,一個(gè)數(shù)組包含若干個(gè)元素,每個(gè)元素都有相應(yīng)地址,指針變量可以指向數(shù)組元素。Int a10;數(shù)組名a其實(shí)就是一個(gè)地址值,記錄的數(shù)組開始的地址,即a0地址。通過指針引用數(shù)組元素:() 下標(biāo)法,如ai形式() 指針法,如*(a+i)或*(p+i)指針數(shù)組:指針可以像任何數(shù)據(jù)類型一樣構(gòu)成數(shù)組。Int *x10定義的是一個(gè)包含10個(gè)整型指針的數(shù)組。Ex:要將
溫馨提示
- 1. 本站所有資源如無(wú)特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 廚房承包合同
- 宿舍承包合同范本
- 2025雜工勞務(wù)分包合同
- 2025關(guān)于住房公積金借款合同書例文
- 房子裝修承包合同
- 提高創(chuàng)新和問題解決能力的培訓(xùn)
- 2025會(huì)計(jì)工作勞動(dòng)合同范本
- 2025副食品供貨合同范文
- 工程材料采購(gòu)合同簡(jiǎn)單
- 2025共有產(chǎn)權(quán)住房 預(yù)售合同 (范本)
- 2025江蘇南京市金陵飯店股份限公司招聘高頻重點(diǎn)提升(共500題)附帶答案詳解
- 公共政策分析 課件匯 陳振明 第0-9章 導(dǎo)論、緒論:政策科學(xué)的“研究綱領(lǐng)”- 政策監(jiān)控
- 2025年牛津譯林版英語(yǔ)七年級(jí)下冊(cè)全冊(cè)單元重點(diǎn)知識(shí)點(diǎn)與語(yǔ)法匯編
- UI與交互設(shè)計(jì)人機(jī)交互設(shè)計(jì)(第二版)PPT完整全套教學(xué)課件
- GMS要素-持續(xù)改進(jìn)(CI)-上汽通用五菱-課件
- 《插畫設(shè)計(jì)》課程標(biāo)準(zhǔn)
- 高考作文答題卡(作文)
- 在鄉(xiāng)村治理中深化推廣運(yùn)用清單制、積分制、一張圖工作方案
- 梅毒的診斷與治療課件
- 工程倫理第二講工程中的風(fēng)險(xiǎn)、安全與責(zé)任課件
評(píng)論
0/150
提交評(píng)論