編程入門(mén)基礎(chǔ)知識(shí)點(diǎn)總結(jié)_第1頁(yè)
編程入門(mén)基礎(chǔ)知識(shí)點(diǎn)總結(jié)_第2頁(yè)
編程入門(mén)基礎(chǔ)知識(shí)點(diǎn)總結(jié)_第3頁(yè)
編程入門(mén)基礎(chǔ)知識(shí)點(diǎn)總結(jié)_第4頁(yè)
編程入門(mén)基礎(chǔ)知識(shí)點(diǎn)總結(jié)_第5頁(yè)
免費(fèi)預(yù)覽已結(jié)束,剩余20頁(yè)可下載查看

下載本文檔

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

文檔簡(jiǎn)介

1、、 常量數(shù)字常量i. 普通數(shù)字:1, 35, 2.7ii. 指數(shù)形式:2.45e-2等價(jià)于2.45*10 -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. 普通字符常量:用單引號(hào)把一個(gè)字符括起來(lái),如 A' ,' 'ii. 轉(zhuǎn)義字符常M : 一對(duì)單引號(hào)括起來(lái)并以開(kāi)頭的字符序列,如 n'(回車(chē))、'123' (

2、8進(jìn)制123對(duì)應(yīng)的字符),'x23' (16進(jìn)制23對(duì)應(yīng)的字符) 字符串常量用一對(duì)雙引號(hào)把一個(gè)字符序列括起來(lái),如“ABCef ",系統(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),#define和符號(hào)常量名之間也有空格的。題目:P7 1, 5, 6, 7, 9, 10、 標(biāo)識(shí)符命名規(guī)則以數(shù)字,字母,下劃線這三類(lèi)字符組

3、成,但 只能以字母或下劃線開(kāi)頭,而 不能也數(shù)字開(kāi)頭,另外不能將關(guān)鍵字做為標(biāo)識(shí)符。32個(gè)關(guān)鍵字表在P365 附錄B變量名,函數(shù)名,符號(hào)常量名全都是標(biāo)識(shí)符題目:P72, 3, 4、 變量變量的定義格式類(lèi)型名變量名;如int a;定義了一個(gè)整型常量a。變量名是由人類(lèi)隨便定義的,符合命名規(guī) 則的前提下,愛(ài)寫(xiě)啥就寫(xiě)啥。所以什么 flag, cc, y1或者函數(shù)名fun,find 等全部是自定的用來(lái)做為名字而已,沒(méi)有更特別的意義。類(lè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í),+,-放在變量前面是先自增自減再使用變量的值,放在變量后面則是先使用變量的值,再自增自減。如 x=3; printf( “d”,+x);則相當(dāng)于執(zhí)行了 +x; printf( "d”

5、,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+5 o C語(yǔ)言里稱(chēng)需要跟n個(gè)運(yùn)算對(duì)象的運(yùn)算符為n元運(yùn)算符。一 元運(yùn)算符有:!,(類(lèi)型名)二元運(yùn)算符有:+,-,*,/,%(求余),=,+=,-=,*=,/=,%=,< , > , <=, >=,=(等 于)二(不等于),&&(且),|(或)多元運(yùn)算符有:,

6、運(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)制類(lèi)型轉(zhuǎn)換格式:(類(lèi)型名)表達(dá)式。將后跟的表達(dá)式的值的數(shù)據(jù)類(lèi)型轉(zhuǎn)換為與圓括號(hào)內(nèi)的類(lèi)型名一致的類(lèi)型。注意類(lèi)型名一定要用() 括起來(lái)。算術(shù)表達(dá)式i. 算術(shù)運(yùn)算符:+,-,*,/,%(求余)ii. 由算術(shù)運(yùn)算符加上運(yùn)算對(duì)象構(gòu)成算術(shù)表達(dá)式,如3+3*6-9/2iii. 值:跟我們小學(xué)

7、時(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)算符: < , > , <=, >=,=(等于),!二(不等于)ii. 由關(guān)系運(yùn)算符加上運(yùn)算對(duì)象構(gòu)成關(guān)系表達(dá)式,

8、如3>=4, 2=aiii. 值:滿(mǎn)足相應(yīng)運(yùn)算符所指定的關(guān)系的值為1,否則為0邏輯表達(dá)式i. 邏輯運(yùn)算符:&&(且),|(或),!(非)ii. 由邏輯運(yùn)算符加上運(yùn)算對(duì)象構(gòu)成 邏輯表達(dá)式,如3&&4, x|!yiii. 值:滿(mǎn)足相應(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í),若&&左邊的表達(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、9,8*aiii. 值:組成逗號(hào)表達(dá)式的各個(gè)表達(dá)式中的最后一個(gè)的值,如上例為 8*a題目:P7 1117 P8 1833五、輸入輸出函數(shù)scanf( “格式控制串”,變量地址表列);如 scanf( "d%c%d ",&a,&ch,&b); scanf( "%4f”,&x);注后、:i. 格式控制串可控制截取用戶(hù)輸入的前幾個(gè)字符給變量,但不能控制輸入幾位小數(shù)給變量,如不能寫(xiě)成 scanf( "%4.2f",&x);ii. 第二個(gè)參數(shù)給的是地址,即要么是&+變量名或數(shù)組元素名的形式,要么就是一個(gè)數(shù)組

10、名或指針變量名,如int *p,a; p=&a; scanf( "d”,p);iii. 考試時(shí)注意看題目給你寫(xiě)好的scanf的格式1. 若其格式控制串內(nèi)各格式符用“, ”隔開(kāi)如scanf( "d, %c, %d",&a,&ch,&b);那輸入時(shí)也要用逗號(hào)隔開(kāi),如止匕 例輸入時(shí)應(yīng):3,+,52. 若是這種格式 scanf( "%d %d ",&a,&b);則輸入時(shí)應(yīng):3 5;3. 若是這種格式 scanf( "d%c%d ",&a,&ch,&b);則輸入時(shí)

11、應(yīng)3+5,若寫(xiě)成3+ 5則a=3,ch=''(空格),b二任意值 (自己上機(jī)運(yùn)行看看結(jié)果)printf( “格式控制串”,輸出項(xiàng)表列);如float x=7.5; printf( “8.2f",x);此處的意思是將x打印出來(lái),且占8歹U, 保留兩位小數(shù)。自己上機(jī)運(yùn)行看看效果。常用格式符匯總:i. %d :輸入輸出整型數(shù)據(jù),%ld :輸入輸出長(zhǎng)整型數(shù)據(jù)ii. %c:輸入輸出字符型數(shù)據(jù)iii. %f :輸出單(雙)精度浮點(diǎn)型數(shù)據(jù),輸入單精度型數(shù)據(jù)。lf :輸入雙精度型數(shù)據(jù)iv. %s:輸入輸出一個(gè)字符串,用printf輸出字符串時(shí),輸出項(xiàng)書(shū)寫(xiě)時(shí)可為字符串常量,或字符數(shù)組名

12、。如 printf( “s"," hello");或 char str10= " hello" ; printf( "s",str);v. %u :輸入輸出無(wú)符號(hào)整型,%o :輸入輸出八進(jìn)制數(shù),%x:輸入輸出十六進(jìn)制數(shù)getchar();函數(shù)調(diào)用后返回用戶(hù)輸入的一個(gè)字符,故需再定義一個(gè)變量來(lái)存放這個(gè)字符,即使用時(shí)應(yīng)char c; c=getchar();意思就是接收用戶(hù)輸入的一個(gè)字符, 并將其賦值給變量Coputchar(字符常量或字符變量名);如 char c= ' A' ;putchar(c);或 put

13、char( '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)成??照Z(yǔ)句:;選擇結(jié)構(gòu)語(yǔ)句:if語(yǔ)句switch語(yǔ)句循環(huán)語(yǔ)句:for語(yǔ)句 while語(yǔ)句do while語(yǔ)句復(fù)合語(yǔ)句:用花括號(hào)將以上任意語(yǔ)句括起來(lái)構(gòu)成一條復(fù)合語(yǔ)句。七、C程序的基本結(jié)構(gòu)void main()聲明部分:用來(lái)定義變量和聲明自定義函數(shù)的原型,需以”結(jié)尾,如int x;執(zhí)行語(yǔ)句部分:第六點(diǎn)里介紹的各種語(yǔ)句,如 x=3; printf( "d”,x);main函數(shù)外可寫(xiě)自定義函數(shù)。如int max()return 0;八、選

14、擇結(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)算,這樣的寫(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ǔ)句的組成

15、部分。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ǔ)句3 ?else語(yǔ)句n條件運(yùn)算符 表達(dá)式1?表達(dá)式2 :表達(dá)式3若表達(dá)式1的值非0,則取表達(dá)式2的值做為整個(gè)表達(dá)式的值,否則取表達(dá)式3的值為整個(gè)表達(dá)式的值。如 3>4? 1:2 該表達(dá)式的值為2switch 語(yǔ)句switch(表達(dá)式)case表達(dá)式 1:語(yǔ)句case表達(dá)式 2:語(yǔ)句 ?case表達(dá)式n:語(yǔ)句default:語(yǔ)句語(yǔ)句執(zhí)行過(guò)程:先計(jì)算表達(dá)式的值,然后判斷該值與

16、表達(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ǔ)句。每個(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ì)括起來(lái),構(gòu)成一條復(fù)合語(yǔ)句,此處也不要隨便加上廣,因一個(gè)”可構(gòu)成一條空語(yǔ)句,這會(huì)使得后面真正的循環(huán)體

17、語(yǔ)句不屬于for 循環(huán)語(yǔ)句的部分)。進(jìn)入步驟44 .計(jì)算表達(dá)式3,然后重新進(jìn)入步驟2while循環(huán)語(yǔ)句 do 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ì)括起來(lái),構(gòu)成一條復(fù)合語(yǔ)句,此處也不要隨便加上廣,因一個(gè)”可構(gòu)成一條空語(yǔ)句,

18、這會(huì)使得后面真正的循環(huán)體語(yǔ)句不屬于 while循 環(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ù)類(lèi)型數(shù)組名整型常量;如int a10;定義了一個(gè)整型數(shù)組,數(shù)組名為a,這個(gè)數(shù)組含有 10個(gè)元素。引用數(shù)組元素:格式:數(shù)組名下標(biāo)切記下標(biāo)值從0開(kāi)始。下標(biāo)可為常量,表達(dá)式,變量等,如 int i=3 ; a0=5; a3*2=9 ; ai=7 ;初始化:數(shù)據(jù)類(lèi)型數(shù)組名整型常量=數(shù)據(jù)表列;將數(shù)據(jù)表列的各個(gè)值依次賦值給數(shù)組的各個(gè)元素。如int a5=0,1,2,3,4;則數(shù)組a各元素a0

19、到a4的值分別為0, 1, 2, 3, 4遍歷數(shù)組元素?cái)?shù)組定義后,我們 不能對(duì)數(shù)組進(jìn)行整體的操作,如int a10;不能用a=3這樣 的操作將數(shù)組的各元素都賦值為3;而只能一個(gè)一個(gè)元素的進(jìn)行賦值,如a0=3;a1=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í)我們就可以使用for循環(huán)來(lái)遍歷數(shù)組的各元素,然后在當(dāng)前循環(huán)中得到一個(gè)元素

20、再對(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 ;-I一、字符串函數(shù)gets(字符數(shù)組名或字符指針變量);如 char str10,* str2; str2=str;則 gets(str);或 gets(str2);都是接收用戶(hù)輸入的字符串如“ ABC ”存入到字符數(shù)組str中puts(字符數(shù)組名或字符指針變量或字符串常量);如 char str10= "china"; char *str2

21、;str=str2; 則 puts(str); 或 puts(str2); 或 puts( china ");都會(huì)在屏幕上打印出 chinastrlen(字符數(shù)組名或字符指針變量);字符串測(cè)長(zhǎng)函數(shù)char str20= "hello world!二int len;len=strlen(str);得出的結(jié)果是 len 的值為 12strcat(字符串1的地址,字符串2的地址);將字符串2的內(nèi)容連接到字符串1的尾部char str120= " ABC ",str220= " xyz” ;strcat(str1,str2);則程序運(yùn)行的結(jié)果是strl

22、內(nèi)存放的字符串變?yōu)锳BCxyz ,當(dāng)然str2存放的 字符串還是xyzostrcmp(字符串1的地址,字符串 2的地址);比較串1和串2哪個(gè)比較大。比較大小的依據(jù)是,兩個(gè)字符串從左往右相應(yīng)位置上第一個(gè)不相等的字符 ASCII碼值之差。char str120= " ABCE ",str220= " ABDE ” ; int i;i=strcmp (str1,str2);第一個(gè)不相等的字符為str1的C'和str2的D,而二者相差-1 ,故- 1做為strcmp函數(shù)執(zhí)行的結(jié)果返回到被調(diào)用的位置,該位置位于賦值表達(dá) 式內(nèi),故將其值賦值給i ,即此時(shí)i的值就是-1

23、.strcpy(字符串1的地址,字符串 2的地址);將字符串2的內(nèi)容復(fù)制到字符串1內(nèi)。char str120= " ABC ",str220= " xyz” ;strcpy(str1,str2);此時(shí)str1的內(nèi)容為“ xyz",當(dāng)然str2的內(nèi)容沒(méi)變strcpy(str1, " uvw ");止匕時(shí)str1的內(nèi)容又變成了 “ uvw十二、函數(shù)函數(shù)定義函數(shù)類(lèi)型函數(shù)名(形式參數(shù)列表 )內(nèi)部變量定義和聲明部分執(zhí)行語(yǔ)句如:int max (int x , int y ) int z ;z= x > y ? x : y ;return

24、( z );注意點(diǎn):1 .函數(shù)類(lèi)型是指返回值的類(lèi)型 ,即要與return語(yǔ)句后跟的表達(dá)式的值的類(lèi)型一致。 若函數(shù)類(lèi)型為 void則說(shuō)明該函數(shù)無(wú)返回值,即函數(shù)體里不能出現(xiàn)return 語(yǔ)句。2 .形式參數(shù)列表里定義的變量要記得給它們指定類(lèi)型,而且如果同時(shí)要定義多個(gè),應(yīng)在每個(gè)前面都分別指定類(lèi)型名,而不能寫(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);pri

25、ntf( " d”,max(a,b);或 c=max(a,b);printf("d”,c)以上兩種方法都會(huì)在屏幕中打印出a, b間的較大值。調(diào)用函數(shù)的格式 函數(shù)名(實(shí)際參數(shù)列表);調(diào)用的時(shí)候像什么函數(shù)類(lèi)型,形式參數(shù)的 類(lèi)型就不要加上去了。max(a,b)中max就是函數(shù)名,寫(xiě)上變量名 a,b是實(shí)際參數(shù)列表,執(zhí)行這個(gè)調(diào)用語(yǔ)句時(shí),會(huì)先把a(bǔ),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è)位置

26、,即若上面 a=3,b=5則max(a,b)return 后的表達(dá)式的值應(yīng)該是 5也就是說(shuō)執(zhí)行完 max后把5返回到調(diào)用max的位置可看 成printf("%d", 5);或另一種解法的 c=5。十三、指針指針變量的聲明:類(lèi)型名*指針變量名;通過(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 ;則x的值變?yōu)?指針變量加上(減去)一個(gè)位移的效果若指針變量存入的是數(shù)組元素的地

27、址,則其加一減一得到的是那個(gè)數(shù)組元素下一個(gè)或前一個(gè)元素的地址。int a10; p=&a3;*p得到的是a3的值。若p+;此時(shí)p存放的是a4的地址&a4; *p得到的就是a4的值?;騪-;止匕時(shí)p存放的是a2的地址&a2 , *p得到的就是a2的值。行指針i. 主要是對(duì)于二維數(shù)組來(lái)說(shuō)的,二維數(shù)組每行都有自己的地址,第0行地址用數(shù)組名表示,第i行地址為數(shù)組名+i;而想要得到二維數(shù)組里一個(gè) 元素的地址,必需先得到其所在行的地址,然后再由那個(gè)地址得到元素的地址,比如說(shuō)int a34;定義了一個(gè)二維數(shù)組,該二維數(shù)組第 0行的 地址為a,第1行的地址為a+1 ,第2行的地址為a+

28、2 ,想從行的地址得 到元素的地址,需在行地址前加上指針運(yùn)算符“* ",即*a就是第0行首個(gè)元素的地址即a00的地址,而a02的地址就是在a00的地址基礎(chǔ)上加上位移量2,即*a+2 ,然后想得到a02這個(gè)元 素的值呢就再加上一個(gè)指針運(yùn)算符“*”)即*(*a+2),類(lèi)似地,想得到a22這個(gè)元素的值呢就是*(*(a+2)+2)ii. 定義行指針變量:類(lèi)型名 (*變量名)數(shù)組長(zhǎng)度;如int (*p)4,a34; p=a;此時(shí)就可把p當(dāng)成a來(lái)用,用法同上所述判斷是否合法訪問(wèn)數(shù)組元素:若是指針?lè)ㄔL問(wèn),判斷指針后跟的是否地址; 若是下標(biāo)法訪問(wèn),判斷下標(biāo)有無(wú)越界。函數(shù)指針:函數(shù)名即為函數(shù)的地址(指

29、針)i. 函數(shù)指針變量的定義:類(lèi)型名(*變量名)(形參列表);如int (*p)();ii. 賦值:指針變量二函數(shù)名;設(shè)有個(gè)函數(shù)其函數(shù)名為max,則要將該函數(shù)的地址給p的話只要執(zhí)行如下語(yǔ)句即可p = max;指針數(shù)組:指針數(shù)組的數(shù)組元素都是指針變量,是用來(lái)存放變量的地址的,定義格式為 類(lèi)型名*變量名數(shù)組長(zhǎng)度;如int * p10;指向指針的指針:指針變量也是一種變量,故在內(nèi)存中也有對(duì)應(yīng)的一個(gè)地址,而要存放指針變量的地址,就要求助于用來(lái)存放指針變量的地址的指針變量,定義格式 類(lèi)型名*變量名; 如int *p1; int *p2; int a=3;可進(jìn)行賦值 p1=&a; p2=&

30、p1;貝U a、*p1 和 *p2 的值都是 3.十四、 宏定義無(wú)參宏定義#define標(biāo)識(shí)符 值 定義后,出現(xiàn)所定義的標(biāo)識(shí)符的地方都將以定 義時(shí)指定的值來(lái)代替。#define M 2+3 main() int x;x=M*M;則x的值為2+3*2+3=11若想得到的結(jié)果是(2+3)*(2+3)則定 義時(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=%dn&

31、quot;, S(a,b); 此時(shí)會(huì)打印出 a*b=12printf("a+b*c+d=%dn" , 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ù)是不一樣的。自定義類(lèi)型名typedef :對(duì)已存在的類(lèi)型名取一個(gè)外號(hào)。i. 基本格式:typedef 原類(lèi)型名新類(lèi)型名;ii. typedef int INTEGER; 則 int a,b;等價(jià)于 INT

32、EGER a,b;iii. typedef int NUM10; 則 int a10;等價(jià)于 NUM a; a 即為一個(gè)有 10 個(gè)元素的數(shù)組的數(shù)組名。iv. typedef int * INTEGER; 則 int *a,*b;等價(jià)于 INTEGER a,b;十五、 結(jié)構(gòu)體,共用體,枚舉類(lèi)型結(jié)構(gòu)體i. 結(jié)構(gòu)體類(lèi)型的定義及變量的定義struct 結(jié)構(gòu)體名類(lèi)型成員1;類(lèi)型成員2;?類(lèi)型成員n;變量名;如struct student char name10;long num;int score4;st1;定義類(lèi)型時(shí)同時(shí)定義變量struct student st2;定義類(lèi)型后,用類(lèi)型名定義變量還有一

33、種struct char name10;long num;int score4;st3;不給類(lèi)型名,直接定義變量ii. 結(jié)構(gòu)體變量所占字節(jié)數(shù):各成員各占字節(jié)數(shù)之和,如以上st1,st2,st3的字節(jié)數(shù)皆為10+4+2*4=22iii. 結(jié)構(gòu)體數(shù)組的定義及初始化struct student a3= "zhang”,20030001,89,90,91,92, "liu”,20030002,68,69,70,71, "li”,20030003,57,58,59,60iv. 結(jié)構(gòu)體成員的訪問(wèn)1. 結(jié)構(gòu)體變量名.成員名 如22. 通過(guò)指針訪問(wèn):struct

34、student *st; st=&st1; (*st).num 或 st->num共用體i. 共用體類(lèi)型的定義及變量的定義union共用體名類(lèi)型成員名1;?類(lèi)型成員名n;變量的定義與結(jié)構(gòu)體類(lèi)似,也有三種方法。union dataint i;char ch;float f;d1;定義類(lèi)型時(shí)同時(shí)定義變量union data d2;定義類(lèi)型后,用類(lèi)型名定義變量unionint i;char ch;float f;,如上d1,d2,d3 所占4).d3;不給類(lèi)型名,直接定義變量ii. 共用體變量所占字節(jié)數(shù):各成員所占字節(jié)數(shù)的最大值字節(jié)數(shù)皆為4.(單精度浮點(diǎn)型變量所占字節(jié)數(shù)最多為iii.

35、共用體成員的訪問(wèn)1 .共用體變量名.成員名如dl.f2.通過(guò)指針訪問(wèn):union student *d; d=&d1; (*d).num或 d->numi. 枚舉類(lèi)型的定義:enum枚舉名枚舉元素名1 ,枚舉元素名2, ?,枚舉元素名n;ii. 枚舉元素的值:默認(rèn)值分別為0、1、?、n-1。枚舉元素的值也可在定義時(shí)重指定,對(duì)于沒(méi)有指定值的元素,按順序加1如 enum weekdaysun=7,mon=1,tue,wend,thur,fri,sat; 貝U sun 值為 7, mon 值 為1, tue值為2, wend值為3, thur值為4, fri值為5, sat值為6十六、 Turbo C 的使用菜單激活:F10菜單切換:左右方向鍵 在不同菜單間切換,上下方向

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 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ì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論