


下載本文檔
版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、C語(yǔ)言知識(shí)點(diǎn)總結(jié)常量> 數(shù)字常量i. 普通數(shù)字:1, 35, 2.7ii. 指數(shù)形式:2.45e-2等價(jià)于2.45*1。2注意e大小寫(xiě)皆可,e前面的數(shù)字不能省,就算是 1也不能省,后面的數(shù)字一定要是整數(shù)iii. 長(zhǎng)整型,單精度浮點(diǎn)型: 3235L, 32.5F分別表示3235是長(zhǎng)整型數(shù)據(jù),32.5是單 精度 浮點(diǎn)型左,若不寫(xiě)上L, F則表示3235是整型,32.5是雙精度浮點(diǎn)型,L, F大小寫(xiě)皆可>字符常量i. 普通字符常量:用學(xué)刃號(hào)把一個(gè)字符括起來(lái),如,ii. 轉(zhuǎn)義字符常量:一對(duì)單引號(hào)括起來(lái)并以“”開(kāi)頭的字符序列,如偵(回車)、,123, ( 8進(jìn)制123對(duì)應(yīng)的字符),,x23,
2、 ( 16進(jìn)制23對(duì)應(yīng)的字符)> 字符串常量用一對(duì)戒引號(hào)把一個(gè)字符序列括起來(lái),如“ABCe”,系統(tǒng)存放字符串常量,每個(gè)字符分配一個(gè)字節(jié),各字符所占字節(jié)緊鄰,并且字符串末尾會(huì)給再開(kāi)一個(gè)字節(jié)里面放一個(gè),0,做為結(jié)束標(biāo)志。>符號(hào)常量定義格式#define符號(hào)常量名 符號(hào)常量值,如#define N 20則定義了符號(hào)常量N,其值為20,注意符號(hào)常量名和符號(hào)常量值之間是用空格隔開(kāi),而不是寫(xiě)上=號(hào),Adefine和符號(hào)常量名之間也有空格的。> 題目 P7 1,5, 6, 7, 9, 10-、標(biāo)d只符'>命名規(guī)則以數(shù)字,字母,下劃線這三類字符組成,但只能以字母或下劃線開(kāi)頭,而
3、不能也數(shù) 字開(kāi)頭,導(dǎo)不能將關(guān)鍵字做為標(biāo)識(shí)符。32個(gè)關(guān)鍵字表在P365附錄B> 變量名,函數(shù)名,符號(hào)常量名全都是標(biāo)識(shí)符> 題目:P7 2, 3, 4三、變量>變量的定義格式類型名變量名;如int a;定義了一個(gè)整型常量 a。變量名是由人類隨便定義的,符合命名規(guī)則的前提下,愛(ài)寫(xiě)啥就寫(xiě)啥。所以什么 flag, cc, yl或者函數(shù)名fun,find等全部是自定的 用來(lái)做 為名字而已,沒(méi)有更特別的意義。> 類型名int整型,long長(zhǎng)整型:用于存放整數(shù),只是數(shù)值范圍不同float單精度浮點(diǎn)型 double雙精度浮點(diǎn)型:用于存放實(shí)數(shù),數(shù)值范圍,精度不同char字符型:用于存放字符
4、變量賦值,初始化int a=3; 定義的同時(shí)初始化a=6*9; 定義后在程序中進(jìn)行賦值變量的值只有在賦值操作時(shí)才會(huì)被改變 ,即將其放在等號(hào)左邊時(shí)才會(huì)改變它的值, 或自增 自減 操作:a=5,a+,a-,像a+3并未改變a的值,只是使用了 a的值而已.自增自減運(yùn)算變量+,+ 變量,變量變量 使變量的值自增 1或自減 1 等價(jià)于變量 =變量+1變量=變量-1+,- 放于變量前后效果的區(qū)別: 當(dāng)自增自減運(yùn)算做為表達(dá)式的一部分時(shí), f 一放在變量前面是先自增做減再使 用變量 的值,放在變量后面則是先使用變量的值 ,再自增自 減。如x=3; printf (" % d" ,+X測(cè)相當(dāng)
5、于執(zhí)行了 +x; printf (" % d" ,X ;這樣的操作所以打印 出4再如x=3; printf (" % d" ,x+ ;則相當(dāng)于執(zhí)行了 printf (" % d" ,X ; x+;這樣的操作,則 打印岀3,當(dāng)然最后x的值還是4。四、表達(dá)式 運(yùn)算符和運(yùn)算對(duì)象一個(gè)運(yùn)算符都有若干個(gè)運(yùn)算對(duì)象,如+必然要跟兩個(gè)運(yùn)算對(duì)象才能進(jìn)行加法運(yùn)算:3+5o C語(yǔ)言里稱需要跟 n個(gè)運(yùn)算對(duì)象的運(yùn)算符為 n元運(yùn)算符。 一元運(yùn)算符有:!,(類型名二元運(yùn)算符有:+,-,*,/,%(求余),=,+=,-=, *=,/=,%=, v , , v =, =
6、,=(等于 ,! =(不 等于 , &&(且 , 11(或 多元運(yùn)算符有: ,運(yùn)算符的優(yōu)先級(jí)和結(jié)合性i. 優(yōu)先級(jí):同一個(gè)運(yùn)算對(duì)象左右兩邊若同時(shí)有兩個(gè)運(yùn)算符,則這兩個(gè)運(yùn)算符優(yōu)先級(jí)高的先進(jìn)行運(yùn)算。ii. 結(jié)合性:若同一個(gè)運(yùn)算對(duì)象左右兩邊的兩個(gè)運(yùn)算符優(yōu)先級(jí)相同,則根據(jù)結(jié)合性判斷先進(jìn)行哪個(gè)運(yùn)算,自左自右結(jié)合性的先算左邊的運(yùn)算符,自右自左的先算右邊的運(yùn)算符。iii. 各運(yùn)算符的優(yōu)先級(jí)和結(jié)合性見(jiàn) P365 附錄 C強(qiáng)制類型轉(zhuǎn)換格式:(類型名 表達(dá)式。將后跟的表達(dá)式的值的數(shù)據(jù)類型轉(zhuǎn)換為與圓括號(hào)內(nèi)的類型名一致的類型。 注意類型名一定要用( 荔起兼。算術(shù)表達(dá)式i. 算術(shù)運(yùn)算符: %(求余ii.
7、由算術(shù)運(yùn)算符加上運(yùn)算對(duì)象構(gòu)成算術(shù)表達(dá)式,如 3+3 *6-9/2iii. 值:跟我們小學(xué)時(shí)學(xué)的一樣,就是表達(dá)式的計(jì)算結(jié)果iv. 整數(shù)除以整數(shù)結(jié)果取整數(shù)部分 ,故 1/3得到的值是 0V. 5%3 結(jié)果為 2,想想小學(xué)除法 , 求余得到的是余數(shù)不是商。 賦值表達(dá)式i. 賦值運(yùn)算符: =,+=,-=, *=, /=,%=ii. 賦值表達(dá)式:變量 =表達(dá)式,如 x=3+6, x+=6-9, x+=x*=3+4 注意等號(hào)左邊只能 是變量iii. 復(fù)合賦值運(yùn)算符的運(yùn)算:以 /=為例:x/=表達(dá)式等價(jià)于x=x/(表達(dá)式)iv. 值: =號(hào)左邊的變量最終的值>關(guān)系表達(dá)式i. 關(guān)系運(yùn)算符: <,&
8、gt;,<=,>=, = =(等于),!=( 不等于 )ii. 由關(guān)系運(yùn)算符加上運(yùn)算對(duì)象構(gòu)成關(guān)系表達(dá)式,如 3>=4, 2=aiii. 值:滿足相應(yīng)運(yùn)算符所指定的關(guān)系的值為 1,否則為 0>邏輯表達(dá)式i. 邏輯運(yùn)算符: &&(且),11(或) ,!( 非)ii. 由邏輯運(yùn)算符加上運(yùn)算對(duì)象構(gòu)成邏輯表達(dá)式,如 3&&4, xll!yiii. 值:滿足相應(yīng)運(yùn)算符所指定的關(guān)系的值為 1,否則為 0iv. 進(jìn)行或 運(yùn)算時(shí), 若/ 左邊的表達(dá)式值為 1,則不再對(duì)右邊的表達(dá)式進(jìn)行運(yùn)算。V. 進(jìn)行&&且 運(yùn)算時(shí), 若&&左
9、邊的表達(dá)式值為 0,則不再對(duì)右邊的表達(dá)式進(jìn)行運(yùn)算 . > 逗號(hào)表達(dá)式i. 逗號(hào)運(yùn)算符:,ii. 用逗號(hào)將各種表達(dá)式連續(xù)起來(lái)構(gòu)成逗號(hào)表達(dá)式,如 3+4,a=9,8*aiii. 值:組成逗號(hào)表達(dá)式的各個(gè)表達(dá)式中的最后一個(gè)的值,如上例為 8*a> 題目: P7 11-17P8 18-33五、輸入輸出函數(shù)> scanf ( “格式控制串”,變量地址表列) ;如 scanf("%d%c%d",&a,&ch,&b); scanf("%4f',&x);i. 格式控制串可控制截取用戶輸入的前幾個(gè)字符給變量,但不能控制輸入幾
10、位小數(shù)給變量,如不能寫(xiě)成 scanf( “ 4.2f , ,&x);ii. 第二個(gè)參數(shù)給的是地址,即要么是 &+變量名或數(shù)組元素名的形式,要么就是一個(gè)數(shù)組名或指針變量名,如 int *p,a; p=&a; scanf("%d” ,p);iii. 考試時(shí)注意看題目給你寫(xiě)好的 scanf 的格式1. 若其格式控制串內(nèi)各格式符用“,”隔開(kāi)如seanf(“ d, %c, %d ”,&a,&ch,&b那 輸入時(shí)也要用逗號(hào)隔開(kāi),如此例輸入時(shí)應(yīng): 3,+,52. 若是這種格式seanf(“ d %d ”,&a,&b測(cè)輸入時(shí)應(yīng):3 5;
11、3. 若是這種格式 scanf( “d%c%d” ,&a,&ch,&b); 則輸入時(shí)應(yīng) 3+5,若寫(xiě)成 3 + 5貝 Ua=3,ch=''(空格),b=任意值(自己上機(jī)運(yùn)行看看結(jié)果)> printf (“格式控制串”,輸出項(xiàng)表列 );如float x=7.5; printf(” 8.2f, ,x);此處的意思是將 x打印岀來(lái),且占 8列,保留兩位 小 數(shù)。自己上機(jī)運(yùn)行看看效果。>常用格式符匯總:i. %d : 輸入輸岀整型數(shù)據(jù), %ld : 輸入輸岀長(zhǎng)整型數(shù)據(jù)ii. %c : 輸入輸岀字符型數(shù)據(jù)iii. %f: 輸岀單(雙)精度浮點(diǎn)型數(shù)據(jù),輸
12、入單精度型數(shù)據(jù)。% If: 輸入雙精度型數(shù)據(jù)iv. %s : 輸入輸岀一個(gè)字符串,用 printf 輸岀字符串時(shí),輸岀項(xiàng)書(shū)寫(xiě)時(shí)可為字符串常量,或字符數(shù)組名。如printf(" % s”,"hello 或);char str10=,hello,A; printf(" % s” ,str);V. %U: 輸入輸岀無(wú)符號(hào)整型, %0: 輸入輸岀八進(jìn)制數(shù),%x: 輸入輸岀十六進(jìn)制數(shù)> getchar();函數(shù)調(diào)用后返回用戶輸入的一個(gè)字符,故需再定義一個(gè)變量來(lái)存放這個(gè)字符,即使用時(shí)應(yīng)chare; c=getchar ();意思就是接收用戶輸入的一個(gè)字符,并將其賦值給變
13、量Co> putchar ( 字符常量或字符變量名);女口 char c= , A, ; putchar (c);或 putchar (, A ,);都會(huì)向屏幕輸岀字符 A。六、C 語(yǔ)言的語(yǔ)句 >表達(dá)式語(yǔ)句:由表達(dá)式末尾加上分號(hào)構(gòu)成。> 函數(shù)調(diào)用語(yǔ)句:由函數(shù)調(diào)用表達(dá)式加上分號(hào)構(gòu)成。> 空語(yǔ)句:;> 選擇結(jié)構(gòu)語(yǔ)句: if 語(yǔ)句 switch 語(yǔ)句> 循環(huán)語(yǔ)句: for 語(yǔ)句 while 語(yǔ)句 do while 語(yǔ)句> 復(fù)合語(yǔ)句:用花括號(hào)打?qū)⒁陨先我庹Z(yǔ)句括起來(lái)構(gòu)成一條復(fù)合語(yǔ)句。七、C 程序的基本結(jié)構(gòu)void main ()聲明部分:用來(lái)定義變量和聲明自定義
14、函數(shù)的原型,需以“;”結(jié)尾,如intx;執(zhí)行語(yǔ)句部分:第六點(diǎn)里介紹的各種語(yǔ)句,如 x=3; printf ( "d” ,x) ;main 函數(shù)外可寫(xiě)自定義函數(shù)。如int max()return 0;八、選擇結(jié)構(gòu)語(yǔ)句> if (表達(dá)式)語(yǔ)句 1 else語(yǔ)句2如果 if 語(yǔ)句的圓括號(hào)內(nèi)的表達(dá)式值為非 0,則執(zhí)行語(yǔ)句 1,值為 0 則執(zhí)行語(yǔ)句 2。i. 表達(dá)式可為任意表達(dá)式, if 語(yǔ)句執(zhí)行的實(shí)質(zhì)是判斷表達(dá)式的值是否為 0 來(lái)決定執(zhí) 行 語(yǔ)句 1 還是語(yǔ)句 2。 另外請(qǐng)?jiān)诖颂幈磉_(dá)嚴(yán)重關(guān)切 , 不管是高手還是菜鳥(niǎo)經(jīng)常會(huì) 把判斷 兩個(gè)數(shù)相等的符號(hào)“ =”寫(xiě)成了一個(gè)等號(hào)成為了賦值運(yùn)算 ,
15、 這樣的 寫(xiě)法不會(huì)引發(fā)編 譯錯(cuò)誤,但結(jié)果會(huì)與原意大大不同 , 所以考試前請(qǐng)?jiān)偃嵝炎约?ii. 語(yǔ)句1和語(yǔ)句2都只能是一個(gè)語(yǔ)句, 若要跟多條語(yǔ)句,切記用一對(duì)訂括起來(lái),構(gòu)成 復(fù)合語(yǔ)句 ; 也不要隨便在圓括號(hào)后加,因“構(gòu)成一條空語(yǔ)句 , 這會(huì) 使后面跟的語(yǔ)句 1 不再屬于 if 語(yǔ)句的組成部分。iii. if 語(yǔ)句的三種結(jié)構(gòu)1. 單邊:if (表達(dá)式)語(yǔ)句2. 雙邊:if (表達(dá)式)語(yǔ)句 1 else語(yǔ)句23. 多層(重點(diǎn)掌握):if (表達(dá)式1)語(yǔ)句1else if (表達(dá)式 2)語(yǔ)句2else if (表達(dá)式 3)語(yǔ)句3else語(yǔ)句n> 條件運(yùn)算符 表達(dá)式 1?表達(dá)式 2 : 表達(dá)式 3
16、若表達(dá)式 1 的值非 0,則取表達(dá)式 2 的值做為整個(gè)表達(dá)式的值,否則取表達(dá)式 3 的值為 整個(gè) 表達(dá)式的值。如 3>4?1:2 該表達(dá)式的值為 2> switch 語(yǔ)句switch (表達(dá)式)case 表達(dá)式 1: 語(yǔ)句case 表達(dá)式 2:語(yǔ)句case表達(dá)式n:語(yǔ)句default: 語(yǔ)句語(yǔ)句執(zhí)行過(guò)程 : 先計(jì)算表達(dá)式的值,然后判斷該值與表達(dá)式1 到表達(dá)式 n 中的哪個(gè)相等,若與表達(dá)式 i 的值相等,則執(zhí)行表達(dá)式 i 后的所有語(yǔ)句,當(dāng)遇到 break ; 語(yǔ)句時(shí)結(jié)束整 個(gè) switch 語(yǔ)句的執(zhí)行。表達(dá)式 1 到表達(dá)式 n 的值都不相等的情況下執(zhí)行 default 后跟的 語(yǔ)句。
17、 每個(gè)case后可跟多條語(yǔ)句。九、循環(huán)結(jié)構(gòu)> for 循環(huán)語(yǔ)句for (表達(dá)式 1;表達(dá)式 2;表達(dá)式 3)循環(huán)體語(yǔ)句 語(yǔ)句執(zhí)行過(guò)程:1. 計(jì)算表達(dá)式 12. 判斷表達(dá)式 2 的值是否為 0,若為 0,語(yǔ)句執(zhí)行結(jié)束,若不為 0,進(jìn)入步驟 33, 執(zhí)行循環(huán)體語(yǔ)句( 需注意的是循環(huán)體語(yǔ)句只能有一個(gè)語(yǔ)句 , 若要包含多個(gè)語(yǔ)句要 用一 對(duì) 0 括起來(lái) , 構(gòu)成一條復(fù)合語(yǔ)句 , 此處也不要隨穌上 ", 因一個(gè) 可構(gòu)成一條空語(yǔ)句 , 這 會(huì)使得后面真正的循環(huán)體語(yǔ)句不屬于 for 循環(huán)語(yǔ)句的部 分)。進(jìn)入步驟 44, 計(jì)算表達(dá)式 3,然后重新進(jìn)入步驟 2> while 循環(huán)語(yǔ)句 do
18、while 循環(huán)語(yǔ)句i. while (表達(dá)式)循環(huán)體語(yǔ)句 執(zhí)行過(guò)程:1. 判斷表達(dá)式的值是否為非 0,若是進(jìn)入步驟 2,否則結(jié)束語(yǔ)句執(zhí)行。2. 執(zhí)行循環(huán)體語(yǔ)句,重新回到步驟 1。ii. do 循環(huán)體語(yǔ)句 while (表達(dá)式); 執(zhí)行過(guò)程:1. 執(zhí)行循環(huán)體語(yǔ)句,進(jìn)入步驟 22. 判斷表達(dá)式的值是否為非 0,若是重新回到步驟 1,否則結(jié)束語(yǔ)句執(zhí)行。這里要注意的地方跟 for 語(yǔ)句一樣, 即循環(huán)體語(yǔ)句只能有一個(gè)語(yǔ)句 ,若要包含多個(gè)語(yǔ) 句要 用一對(duì) 0 括起來(lái),構(gòu)成一條復(fù)合語(yǔ)句 ,此處也不要隨便加上 " ,因一個(gè) 可構(gòu)成一條空語(yǔ)句 , 這務(wù) f 吏得后面真正的循環(huán)體語(yǔ)句不屬于 while
19、 循環(huán)語(yǔ)句的部分 , 另外 do while 循環(huán)的 while (表達(dá)式)后是要加 " 的。> break 語(yǔ)句: 放在循環(huán)體內(nèi)實(shí)現(xiàn)的功能是結(jié)束其所在的那層循環(huán)的執(zhí)行。 十、數(shù)組> 定義格式:數(shù)據(jù)類型數(shù)組名 整型常量 ; 如 inta10; 定義了一個(gè)整型數(shù)組,數(shù)組名為a,這個(gè)數(shù)組含有10個(gè)元素。> 引用數(shù)組元素:格式:數(shù)組名 下標(biāo) 切記下標(biāo)值從 0開(kāi)始。下標(biāo)可為常量,表達(dá)式, 變量 等,如 inti=3 ; a0=5 ; a3*2=9 ; ai=7 ;> 初始化:數(shù)據(jù)類型數(shù)組名整型常量=數(shù)據(jù)表列2 ;將數(shù)據(jù)表列的各個(gè)值依次賦值給數(shù)組的各個(gè)元素。如inta5
20、= 0,l,2,3,4 2;則數(shù)組a各元素a0到a4的值分別為0,1,2, 3,4> 遍歷數(shù)組元素?cái)?shù)組定義后, 我 W 不能對(duì)數(shù)組進(jìn)行整體的操作 , 如 inta10; 不能用 a=3 這樣的操作將數(shù) 組 的各元素都賦值為 3;而只能一個(gè)一個(gè)元素的進(jìn)行賦值,如a0=3;alJ=3;a2=3.a9=3;當(dāng)然此時(shí)我們就可以借助于一個(gè) for 循環(huán)來(lái)控制下標(biāo)的 變化從而對(duì)數(shù)組的各個(gè)元素進(jìn)行賦 值for(i=0;i<10;i+) ai=3;當(dāng)然這只是用 for 循環(huán)遍歷數(shù)組各元素的最簡(jiǎn)單的例子,一般考試考的是找出數(shù)組元素的某種特性的極值,比如最大值,最小值,或?qū)?shù)組各元素進(jìn)行排序,這時(shí)我們
21、就可以使用for 循環(huán)來(lái)遍歷數(shù)組的各元素,然后在當(dāng)前循環(huán)中得到一個(gè)元素再對(duì)其進(jìn)行處理。如 i=2 時(shí)訪問(wèn)到的元素是 a2, 你就可以問(wèn)問(wèn)它,你是不是最小值啊。> 整型數(shù)組int a10; 整型數(shù)組里的各個(gè)元素存放的是整數(shù)。 a3=3;>字符型數(shù)組char str20 ;字符型數(shù)組里的各個(gè)元素存放的是字符。str3='A'十一、字符串函數(shù)> gets( 字符數(shù)組名或字符指針變量 ) ;女口 char str10,* str2; str2=str;貝U gets(str);或 gets(st;都是接收用戶輸入的字符串女口 “ ABC存入到字符數(shù)組str中>
22、puts( 字符數(shù)組名或字符指針變量或字符串常量 ) ;如 char str10=''china'' char *str2;str=str2; 則 puts(str); 或 puts(str2); 或 puts("china"); 都 會(huì)在屏幕上打印出 china> strlen ( 字符數(shù)組名或字符指針變量 ); 字符串測(cè)長(zhǎng)函數(shù)char str20="hello worldint len;len=strlen(str); 得出的結(jié)果是 len 的值為 12> strcat ( 字符串 1 的地址,字符串 2 的地址 )
23、 ;將字符串 2 的內(nèi)容連接到字符串 1 的尾部。char strl 20=''ABC'',str220=''xyz"strcat(strl ,str2);則程序運(yùn)行的結(jié)果是 strl 內(nèi)存放的字符串變?yōu)?ABCxyz, 當(dāng)然 str2 存放的字符串還 是 xyz<,> strcmp ( 字符串 1 的地址,字符串 2 的地址 ) ;比較串 1 和串 2 哪個(gè)比較大。比較大小的依據(jù)是,兩個(gè)字符串從左往右相應(yīng)位置上第一個(gè)不相等的字符 ASCII 碼值之差。char strl 20=” ABCE” ,str220="A
24、BDE''int i;i=strcmp (strl,str2);第一個(gè)不相等的字符為 strl的C和str2的,D',而二者相差-1,故-1做為strcmp函數(shù)執(zhí)行 的結(jié)果返回到被調(diào)用的位置,該位置位于賦值表達(dá)式內(nèi),故將其值賦值給i, 即此時(shí) i 的值就是 -1.strcpy (字符串 1的地址,字符串 2的地址 );將字符串 2 的內(nèi)容復(fù)制到字符串 1 內(nèi)。 char strl 20="ABC",str220="xyz''strcpy(strl,str2);此時(shí) strl 的內(nèi)容為"xyz",當(dāng)然 st
25、r2 的內(nèi)容沒(méi)變 strcpy(strl, ” 此時(shí)Strl 的內(nèi)容又變成了“ uvw "。十二、函數(shù)> 函數(shù)定義函數(shù)類型函數(shù)名(形式參數(shù)列表)(內(nèi)部變量定義和聲明部分 執(zhí)行語(yǔ)句如:int max (int x , int y ) ( int z;z= x > y ? x : y ; return ( z );1. 函數(shù)類型是指返回值的類型,即要與 return 語(yǔ)句后跟的表達(dá)式的值的類型一致。 若函數(shù)類 型為void則說(shuō)明該函數(shù)無(wú)返回值,即函數(shù)體里不能出現(xiàn)return語(yǔ)句。2. 形式參數(shù)列表里定義的變量要記得給它們指定類型,而且如果同時(shí)要定義多個(gè) , 應(yīng)在每個(gè) 前面都分
26、別指定類型名 , 而不能寫(xiě)成 int x,y;3. 函數(shù)體里能寫(xiě)的語(yǔ)句跟 main 函數(shù)一樣,在開(kāi)頭可定義所需要的變量,后面跟上一堆執(zhí)行語(yǔ)句。> 函數(shù)調(diào)用流程以上面的函數(shù)為例,在 main 函數(shù)進(jìn)行調(diào)用:void main () int a, b, c;scanf( "%d%d ” , &a, &b);printf ( "%d” , max (a或b)c=max (a, b) ; printf ( "%d以上兩種方法都會(huì)在屏幕中打印岀a, b 間的較大值。調(diào)用函數(shù)的格式函數(shù)名 (實(shí)際參數(shù)列表 );調(diào)用的時(shí)候像什么函數(shù)類型,形式參數(shù)的類型就不要
27、加上去了。 max (a, b)中max就是函數(shù)名,寫(xiě)上變量名a, b是實(shí)際參數(shù)列表,執(zhí)行這個(gè)調(diào)用語(yǔ)句時(shí),會(huì)先把 a, b 的值給相應(yīng)位置的形式參數(shù)即執(zhí)行了 x=a, y=b 這樣的操作,然后開(kāi)始 執(zhí)行 max 函數(shù)的函數(shù)體的語(yǔ)句。當(dāng) max 函數(shù)體里執(zhí)行到一個(gè) return 語(yǔ)句時(shí),則 max 函數(shù)結(jié) 束執(zhí)行,將 return 后的表達(dá)式的值返回給 main 函數(shù)調(diào)用 max 函數(shù)的那個(gè)位置,即若上面 a=3, b=5 則 max (a, b) return后的表達(dá)式的值應(yīng)該是5也就是說(shuō)執(zhí)行完 max后把5返回到調(diào) 用max的位置可看成printf ( "%d" , 5)
28、 ;或另一種解法的 c=5。十三、指針> 指針變量的聲明:類型名 * 指針變量名;>通過(guò)指針變量訪問(wèn)它所指向的普通變量的值先將普通變量的地址賦值給指針變量,再通過(guò)指針運(yùn)算符* 得到普通變量的值int *p,x,y; x=3; p=&x;則printf(“ d”,*p)會(huì)打印岀3即x的值 y=*p ;則y的值變?yōu)?*p=5 ;貝0 x的值變?yōu)?> 指針變量加上 (減去 ) 一個(gè)位移的效果 若指針變量存入的是數(shù)組元素的地址, 前一個(gè)元素的地址。胞其加 _減一得到的是那個(gè)數(shù)組元看 下一 個(gè)或>行指針 a10; p=&a3;*?得到的是a3的值。若p+
29、 ;此時(shí)p存放的是a4的地址&a4; *p得到的就是 a4的值。放的是a2的地址&a2, *p得到的就是 a2 的值。P-;此時(shí)p存數(shù) 組名 必需先得到 ;定義了一個(gè)主要是對(duì)于二維數(shù)組來(lái)說(shuō)的, 表示,第 i 行地址為數(shù)組名 其所在行的地址,然后再由那個(gè)地址得到元素的地址,比如說(shuō)int a34二維數(shù)組,該二維數(shù)組第。行的地址為a,第1行的地址為 a+1,第2行的地址為a+2,想從行的地址得到元素的地址,需在行地址前加上指針運(yùn)算符即 *3就是第 0行首個(gè)元素的地址即 a00 的地址,而 a0 的地 址就是在 a00 的地址基礎(chǔ)上加上位移量* ”二維數(shù)組每行都有自己的地址,第。行地址
30、用+i ; 而想要得到二維數(shù)組里一個(gè)元素的地址,a0 這個(gè)元 素的值呢就再加上一個(gè)指針運(yùn)算符“ a2這個(gè)元素的值呢就是*(*(a+2)+2) (* 變量名 ) 數(shù)組長(zhǎng)度 ;此時(shí)就可把p當(dāng)成a來(lái)用,用法同上所述。判斷是否合法訪問(wèn)數(shù)組元素:若是指針?lè)ㄔL問(wèn),判斷指針后跟的是否地址;若是下標(biāo)法 問(wèn),判斷下標(biāo)有無(wú)越界。函數(shù)指針:函數(shù)名即為函數(shù)的地址 (指針 )i. 函數(shù)指針變量的定義:類型名 (* 變量名 )( 形參列表 ); 如 int (*p)();ii. 賦值:指針變量=函數(shù)名;設(shè)有個(gè)函數(shù)其函數(shù)名為max,則要將該函數(shù)的地址給只要執(zhí)行如下語(yǔ)句即可 p = max;指針數(shù)組:指針數(shù)組的數(shù)組元素都是指
31、針變量,是用來(lái)存放變量的地址的,定義格式為 型名*變量名 數(shù)組長(zhǎng)度 ; 如 int*p10;指向指針的指針:指針變量也是一種變量,故在內(nèi)存中也有對(duì)應(yīng)的一個(gè)地址,而要存放 針變量的地址,就要求助于用來(lái)存放指針變量的地址的指針變量,定義格式 量名;如 int *pl; int *p2; int a=3; 可進(jìn)行賦值 pl=&a; p2=&pl; 則 a、*pl 十四、宏定義> 無(wú)參宏定義 #define 標(biāo)識(shí)符值定義后,岀現(xiàn)所定義的標(biāo)識(shí)符的地方都將以定義 代替。ii.2,艮 P*a+2, 然后想得到 *(*a+2), 類似地,想得到 定義行指針變量:類型名 如 int (*p
32、)4,a34; p=a;,即p 的話指* 變類型名*p2 的值都是 3.時(shí)指定的值來(lái)#define M 2+3 main()( int x;x=M*M; 則 x 的值為 2+3*2+3=11 若想得到的結(jié)果是 (2+3)*(2+3 測(cè)定義時(shí)也寫(xiě) 成這樣 #define M (2+3)注意#define、標(biāo)識(shí)符、值之間都要用空格隔開(kāi),且宏定義結(jié)尾不需加分號(hào)。> 帶參宏定義 #define 標(biāo)識(shí)符 ( 參數(shù)表 ) 值#define S(x,y) x*y main()( int a=3,b=4,c=5,d=6;printf( ” a*b=%'d , S(a,b)此時(shí)會(huì)打印岀 a*b=1
33、2n”, S(a+b,c+d); 此時(shí)會(huì)打印出 a+b*c+d=29, 帶參宏定義 執(zhí)行 時(shí)是將a+b這樣一個(gè)表達(dá)式代替 x, c+d這樣一個(gè)表達(dá)式代替 y,所以S(a+b,c+d)進(jìn)行的 是a+b*c+d的運(yùn)算,而不是將 a+b的值給x, c+d的值給y然后再做x*y,這點(diǎn)踉函數(shù)調(diào) 用傳遞參數(shù)是不一樣的。> 自定義類型名 typedef :對(duì)已存在的類型名取一個(gè)外號(hào)。i. 基本格式: typedef 原類型名 新類型名;ii. typedef int INTEGER; 則 int a,b; 等價(jià)于 INTEGER a,b;iii. typedef int NUM10; 則 int a1
34、0; 等價(jià)于 NUM a; a 即為一個(gè)有 10 個(gè)元素的數(shù) 組的數(shù) 組名。iv. typedef int * INTEGER; 則 int *a,*b; 等價(jià)于 INTEGER a,b;十五、 結(jié)構(gòu)體,共用體,枚舉類型>結(jié)構(gòu)體i. 結(jié)構(gòu)體類型的定義及變量的定義struct 結(jié)構(gòu)體名 類型成員 1; 類型成員 2; 類型成員 n; 變量名;如struct student ( char name 10;long num; int score 4;stl; 定義類型時(shí)同時(shí)定義變量struct student st2 淀義類型后,用類型名定義變量 還有一種struct( char name 10;long
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝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ù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 代銷意向合同范本
- 二手車線上交易合同范本
- 眾籌股東合同范本6
- 買賣帶表格合同范例
- 加工中心保養(yǎng)合同范本
- 兄弟共同承包土地合同范本
- 辦公電腦合同范本
- 代理執(zhí)行合同范本
- 共同買地皮合同范本
- pc吊裝合同范本
- 高考語(yǔ)文一輪復(fù)習(xí):文學(xué)類文本閱讀之賞析語(yǔ)言、手法(原卷版+解析)
- 2023-2024學(xué)年江蘇省淮安市七年級(jí)(上)期末英語(yǔ)試卷
- 環(huán)保行業(yè)合同管理制度
- 嚴(yán)重創(chuàng)傷患者緊急救治血液保障模式與輸血策略中國(guó)專家共識(shí)(2024版)
- 中國(guó)無(wú)人機(jī)市場(chǎng)分析
- 2025高考數(shù)學(xué)專項(xiàng)復(fù)習(xí):圓中鬼魅阿波羅尼斯圓(含答案)
- 2024年新課標(biāo)培訓(xùn)2022年小學(xué)英語(yǔ)新課標(biāo)學(xué)習(xí)培訓(xùn)課件
- 福建省福州市2023-2024學(xué)年高一上學(xué)期期末質(zhì)量檢測(cè)英語(yǔ)試題 含答案
- 中學(xué)八年級(jí)信息技術(shù)Excel-電子表格教案
- 哲學(xué)與人生 第二課 樹(shù)立科學(xué)的世界觀2.1
評(píng)論
0/150
提交評(píng)論