


下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、C語言知識(shí)點(diǎn)總結(jié)C語言知識(shí)點(diǎn)總結(jié)1一、常量2二、標(biāo)識(shí)符2三、變量2四、表達(dá)式3五、輸入輸出函數(shù)4六、C語言的語句5七、C程序的基本結(jié)構(gòu)5八、選擇結(jié)構(gòu)語句5if(表達(dá)式)語句1else語句25條件運(yùn)算符表達(dá)式1?表達(dá)式2:表達(dá)式36switch語句6九、循環(huán)結(jié)構(gòu)6for循環(huán)語句6while循環(huán)語句dowhile循環(huán)語句6十、數(shù)組7H一、字符串函數(shù)7十二、函數(shù)8十三、指針9十四、宏定義10十五、結(jié)構(gòu)體,共用體,枚舉類型10十六、TurboC的使用12一、常量數(shù)字常量i. 普通數(shù)字:1,35,2.7指數(shù)形式:2.45e-2等價(jià)丁2.45*10-2注意e大小寫皆可,e前面的數(shù)字不能省,就算是1也不能省
2、,后面的數(shù)字一定要是整數(shù)長整型,單精度浮點(diǎn)型:3235L,32.5F分別表示3235是長整型數(shù)據(jù),32.5是單精度浮點(diǎn)型左,若不寫上L,F則表示3235是整型,32.5是雙精度浮點(diǎn)型,L,F大小寫皆可字符常量i. 普通字符常量:用單引號(hào)把一個(gè)字符括起來,如A','ii. 轉(zhuǎn)義字符常量:一對(duì)單引號(hào)括起來并以“”開頭的字符序列,如n'(回車)、123'(8進(jìn)制123對(duì)應(yīng)的字符),x23'(16進(jìn)制23對(duì)應(yīng)的字符)字符串常量用一對(duì)雙引號(hào)把一個(gè)字符序列括起來,如“ABCef,系統(tǒng)存放字符申常量,每個(gè)字符分配一個(gè)字節(jié),各字符所占字節(jié)緊鄰,并且字符申末尾會(huì)給再開一個(gè)
3、字節(jié)里面放一個(gè)0'做為結(jié)束標(biāo)志。符號(hào)常量定義格式#define符號(hào)常量名符號(hào)常量值,如#defineN20則定義了符號(hào)常量N,其值為20,注意符號(hào)常量名和符號(hào)常量值之間是用空格隔開,而不是寫上=號(hào),#define和符號(hào)常量名之間也有空格的。二、標(biāo)識(shí)符命名規(guī)則以數(shù)字,字母,下劃線這三類字符組成,但只能以字母或下劃線開頭,而不能也數(shù)字開頭,另外不能將關(guān)鍵字做為標(biāo)識(shí)符。32個(gè)關(guān)鍵字表在P365附錄B變量名,函數(shù)名,符號(hào)常量名全都是標(biāo)識(shí)符三、變量變量的定義格式類型名變量名;如inta;定義了一個(gè)整型常量a。變量名是由人類隨便定義的,符合命名規(guī)則的前提下,愛寫啥就寫啥。所以什么flag,cc,y
4、1或者函數(shù)名fun,find等全部是自定的用來做為名字而已,沒有更特別的意義。類型名int整型,long長整型:用丁存放整數(shù),只是數(shù)值范圍不同float單精度浮點(diǎn)型double雙精度浮點(diǎn)型:用丁存放實(shí)數(shù),數(shù)值范圍,精度不同char字符型:用丁存放字符變量賦值,初始化inta=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+,-放丁變量前
5、后效果的區(qū)別:當(dāng)自增自減運(yùn)算做為表達(dá)式的一部分時(shí),+,-放在變量前面是先自增自減再使用變量的值,放在變量后面則是先使用變量的值,再自增自減。如x=3;printf(%d,+x);則相當(dāng)丁執(zhí)行了+x;printf(%d,x);這樣的操作所以打印出4再如x=3;printf(%d,x+);則相當(dāng)丁執(zhí)行了printf(%d,x);x+;這樣的操作,貝U打印出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。C語言里稱需要跟n個(gè)運(yùn)算對(duì)象的運(yùn)算符為n元運(yùn)算符。一元運(yùn)算符有:!,(類型名)二元運(yùn)算符有:+,-,*,/,%(求
6、余),=,+=,-=,*=,/=,%=,<,>,<=,>=,=(等?。?!=(不等?。?&&(且),|(或)多元運(yùn)算符有:,運(yùn)算符的優(yōu)先級(jí)和結(jié)合性優(yōu)先級(jí):同一個(gè)運(yùn)算對(duì)象左右兩邊若同時(shí)有兩個(gè)運(yùn)算符,則這兩個(gè)運(yùn)算符優(yōu)先級(jí)高的先進(jìn)行運(yùn)算。結(jié)合性:若同一個(gè)運(yùn)算對(duì)象左右兩邊的兩個(gè)運(yùn)算符優(yōu)先級(jí)相同,則根據(jù)結(jié)合性判斷先進(jìn)行哪個(gè)運(yùn)算,自左自右結(jié)合性的先算左邊的運(yùn)算符,自右自左的先算右邊的運(yùn)算符。i. 各運(yùn)算符的優(yōu)先級(jí)和結(jié)合性見P365附錄C強(qiáng)制類型轉(zhuǎn)換格式:(類型名)表達(dá)式。將后跟的表達(dá)式的值的數(shù)據(jù)類型轉(zhuǎn)換為與圓括號(hào)內(nèi)的類型名一致的類型。注意類型名一定要用()括起來。算
7、術(shù)表達(dá)式i. 算術(shù)運(yùn)算符:+,-,*,/,%(求余)ii. 由算術(shù)運(yùn)算符加上運(yùn)算對(duì)象構(gòu)成算術(shù)表達(dá)式,如3+3*6-9/2值:跟我們小學(xué)時(shí)學(xué)的一樣,就是表達(dá)式的計(jì)算結(jié)果iii. 整數(shù)除以整數(shù)結(jié)果取整數(shù)部分,故1/3得到的值是0iv. 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)左邊只能是變量復(fù)合賦值運(yùn)算符的運(yùn)算:以/=為例:x/=表達(dá)式等價(jià)丁x=x/(表達(dá)式)iii. 值:=號(hào)左邊的變量最終的值關(guān)系表達(dá)式i. 關(guān)系運(yùn)算符:<,>
8、,<=,>=,=(等?。?!=(不等?。﹊i. 由關(guān)系運(yùn)算符加上運(yùn)算對(duì)象構(gòu)成關(guān)系表達(dá)式,如3>=4,2=a值:滿足相應(yīng)運(yùn)算符所指定的關(guān)系的值為1,否則為0邏輯表達(dá)式i. 邏輯運(yùn)算符:&&(且),|(或),!(非)ii. 由邏輯運(yùn)算符加上運(yùn)算對(duì)象構(gòu)成邏輯表達(dá)式,如3&&4,x|!y值:滿足相應(yīng)運(yùn)算符所指定的關(guān)系的值為1,否則為0進(jìn)行|或運(yùn)算時(shí),若|左邊的表達(dá)式值為1,則不再對(duì)右邊的表達(dá)式進(jìn)行運(yùn)算。iii. 進(jìn)行&&且運(yùn)算時(shí),若&繇邊的表達(dá)式值為0,則不再對(duì)右邊的表達(dá)式進(jìn)行運(yùn)算。逗號(hào)表達(dá)式i. 逗號(hào)運(yùn)算符:,ii. 用逗號(hào)將
9、各種表達(dá)式連續(xù)起來構(gòu)成逗號(hào)表達(dá)式,如3+4,a=9,8*a值:組成逗號(hào)表達(dá)式的各個(gè)表達(dá)式中的最后一個(gè)的值,如上例為8*a題目:P71117P81833五、輸入輸出函數(shù)scanf(格式控制申”,變量地址表歹U);如scanf(%d%c%d&a,&ch,&b);scanf(%4f',&x);汪息:格式控制申可控制截取用戶輸入的前幾個(gè)字符給變量,但不能控制輸入幾位小數(shù)給變量,如不能寫成scanf(%4.2f”,&x);i. 第二個(gè)參數(shù)給的是地址,即要么是&攻量名或數(shù)組元素名的形式,要么就是一個(gè)數(shù)組名或指針變量名,如int*p,a;p=&
10、a;scanf(%d,p);考試時(shí)注意看題目給你寫好的scanf的格式1. 若其格式控制申內(nèi)各格式符用二”隔開如scanf(%d%c%d,&a,&ch,&b);那輸入時(shí)也要用逗號(hào)隔開,如此例輸入時(shí)應(yīng):3,+,52. 若是這種格式scanf(%d%d,&a,&b);則輸入時(shí)應(yīng):35;若是這種格式scanf(%d%c%d&a,&ch,&b);則輸入時(shí)應(yīng)3+5,若寫成3+5則a=3,ch=''(空格),b=任意值(自己上機(jī)運(yùn)行看看結(jié)果)printf(格式控制申”,輸出項(xiàng)表歹0);如floatx=7.5;printf(%8
11、.2f”,x);此處的意思是將x打印出來,且占8列,保留兩位小數(shù)。自己上機(jī)運(yùn)行看看效果。常用格式符匯總:i. %d輸入輸出整型數(shù)據(jù),ld:輸入輸出長整型數(shù)據(jù)ii. %c輸入輸出字符型數(shù)據(jù)%f:輸出單(雙)精度浮點(diǎn)型數(shù)據(jù),輸入單精度型數(shù)據(jù)。lf:輸入雙精度型數(shù)據(jù)%s輸入輸出一個(gè)字符申,用printf輸出字符申時(shí),輸出項(xiàng)書寫時(shí)可為字符申常量,或字符數(shù)組名。如printf(%S;hello”);或charstr10="hello”;printf(%§',str);%u輸入輸出無符號(hào)整型,0輸入輸出八進(jìn)制數(shù),%x:輸入輸出十六進(jìn)制數(shù)getchar();函數(shù)調(diào)用后返回用戶輸入
12、的一個(gè)字符,故需再定義一個(gè)變量來存放這個(gè)字符,即使用時(shí)應(yīng)charc;c=getchar();意思就是接收用戶輸入的一個(gè)字符,并將其賦值給變量coputchar(字符常量或字符變量名);如charc='A'putchar(c);或putchar(A');都會(huì)向屏幕輸出字符A。六、C語言的語句表達(dá)式語句:由表達(dá)式末尾加上分號(hào)構(gòu)成。函數(shù)調(diào)用語句:由函數(shù)調(diào)用表達(dá)式加上分號(hào)構(gòu)成。空語句:;選擇結(jié)構(gòu)語句:if語句switch語句循環(huán)語句:for語句while語句dowhile語句復(fù)合語句:用花括號(hào)將以上任意語句括起來構(gòu)成一條復(fù)合語句。七、C程序的基本結(jié)構(gòu)voidmain()聲明部分
13、:用來定義變量和聲明自定義函數(shù)的原型,需以“;”結(jié)尾,如intx;執(zhí)行語句部分:第六點(diǎn)里介紹的各種語句,如x=3;printf(%d,x);main函數(shù)外可寫自定義函數(shù)。如intmax()return0;八、選擇結(jié)構(gòu)語句if(表達(dá)式)語句1else語句2如果if語句的圓括號(hào)內(nèi)的表達(dá)式值為非0,則執(zhí)行語句1,值為0則執(zhí)行語句2。i.表達(dá)式可為任意表達(dá)式,if語句執(zhí)行的實(shí)質(zhì)是判斷表達(dá)式的值是否為0來決定執(zhí)行語句1還是語句2。另外清在此處表達(dá)嚴(yán)重關(guān)切,不管是高手還是菜鳥經(jīng)常會(huì)把判斷兩個(gè)數(shù)相等的符號(hào)“=”寫成了一個(gè)等號(hào)“=”成為了賦值運(yùn)算,這樣的寫法不會(huì)引發(fā)編譯錯(cuò)誤,但結(jié)果會(huì)與原意大大不同,所以考試前
14、清再三提醒自己。ii.語句1和語句2都只能是一個(gè)語句,若要跟多條語句,切記用一對(duì)括起來,構(gòu)成復(fù)合語句;也不要隨便在圓括號(hào)后加“;”,因“;”構(gòu)成一條空語句,這會(huì)使后面跟的語句1不再屆丁if語句的組成部分。iii. if語句的三種結(jié)構(gòu)1. 單邊:if(表達(dá)式)語句2. 雙邊:if(表達(dá)式)語句1else語句23. 多層(重點(diǎn)掌握):if(表達(dá)式1)語句1elseif(表達(dá)式2)語句2elseif(表達(dá)式3)語句3else語句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á)式的值為2sw
15、itch語句switch(表達(dá)式)case表達(dá)式1:語句case表達(dá)式2:語句case表達(dá)式n:語句default:語句語句執(zhí)行過程:先計(jì)算表達(dá)式的值,然后判斷該值與表達(dá)式1到表達(dá)式n中的哪個(gè)相等,若與表達(dá)式i的值相等,貝U執(zhí)行表達(dá)式i后的所有語句,當(dāng)遇到break;語句時(shí)結(jié)束整個(gè)switch語句的執(zhí)行。表達(dá)式1到表達(dá)式n的值都不相等的情況下執(zhí)行default后跟的語句。每個(gè)case后可跟多條語句。九、循環(huán)結(jié)構(gòu)for循環(huán)語句for(表達(dá)式1;表達(dá)式2;表達(dá)式3)循環(huán)體語句語句執(zhí)行過程:1. 計(jì)算表達(dá)式1判斷表達(dá)式2的值是否為0,若為0,語句執(zhí)行結(jié)束,若不為0,進(jìn)入步驟3執(zhí)行循環(huán)體語句(需注意的
16、是循環(huán)體語句只能有一個(gè)語句,若要包含多個(gè)語句要用一對(duì)括起來,構(gòu)成一條復(fù)合語句,此處也不要隨便加上“;”,因一個(gè)“;”可構(gòu)成一條空語句,這會(huì)使得后面真正的循環(huán)體語句不屆丁for循環(huán)語句的部分)。進(jìn)入步驟42. 計(jì)算表達(dá)式3,然后重新進(jìn)入步驟2while循環(huán)語句dowhile循環(huán)語句i. while(表達(dá)式)循環(huán)體語句執(zhí)行過程:1. 判斷表達(dá)式的值是否為非0,若是進(jìn)入步驟2,否則結(jié)束語句執(zhí)行。2. 執(zhí)行循環(huán)體語句,重新回到步驟1。ii. do循環(huán)體語句while(表達(dá)式);執(zhí)行過程:1. 執(zhí)行循環(huán)體語句,進(jìn)入步驟22. 判斷表達(dá)式的值是否為非0,若是重新回到步驟1,否則結(jié)束語句執(zhí)行。這里要注意的地
17、方跟for語句一樣,即循環(huán)體語句只能有一個(gè)語句,若要包含多個(gè)語句要用一對(duì)括起來,構(gòu)成一條復(fù)合語句,此處也不要隨便加上“;”,因一個(gè)“;”可構(gòu)成一條空語句,這會(huì)使得后面真正的循環(huán)體語句不屆丁while循環(huán)語句的部分,另外dowhile循環(huán)的while(表達(dá)式)后是要加“;”的。break語句:放在循環(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開始。下標(biāo)可為常量,表達(dá)式,變量等,如inti=3;a0=5;a3*2=9;ai=7;初始化:數(shù)據(jù)
18、類型數(shù)組名整型常量=(數(shù)據(jù)表列;將數(shù)據(jù)表列的各個(gè)值依次賦值給數(shù)組的各個(gè)元素。如inta5=0,1,2,3,4;則數(shù)組a各元素a0到a4的值分別為0,1,2,3,4遍歷數(shù)組元素?cái)?shù)組定義后,我們不能對(duì)數(shù)組進(jìn)行整體的操作,如inta10;不能用a=3這樣的操作將數(shù)組的各元素都賦值為3;而只能一個(gè)一個(gè)元素的進(jìn)行賦值,如a0=3;a1=3;a2=3a9=3;當(dāng)然此時(shí)我們就可以借助丁一個(gè)for循環(huán)來控制下標(biāo)的變化從而對(duì)數(shù)組的各個(gè)元素進(jìn)行賦值for(i=0;i<10;i+)ai=3;當(dāng)然這只是用for循環(huán)遍歷數(shù)組各元素的最簡單的例子,一般考試考的是找出數(shù)組元素的某種特性的極值,比如最大值,最小值,或?qū)?/p>
19、數(shù)組各元素進(jìn)行排序,這時(shí)我們就可以使用for循環(huán)來遍歷數(shù)組的各元素,然后在當(dāng)前循環(huán)中得到一個(gè)元素再對(duì)其進(jìn)行處理。如i=2時(shí)訪問到的元素是a2,你就可以問問它,你是不是最小值啊。整型數(shù)組inta10;整型數(shù)組里的各個(gè)元素存放的是整數(shù)。a3=3;字符型數(shù)組charstr20;字符型數(shù)組里的各個(gè)元素存放的是字符。str3='A'H一、字符串函數(shù)gets(字符數(shù)組名或字符指針變量);如charstr10,*str2;str2=str;貝Ugets(str);或gets(str2);都是接收用戶輸入的字符申如“ABC存入到字符數(shù)組str中puts(字符數(shù)組名或字符指針變量或字符申常量);
20、如charstr10=”china”;char*str2;str=str2;貝Uputs(str);或puts(str2);或puts(china”);都會(huì)在屏幕上打印出chinastrlen(字符數(shù)組名或字符指針變量);字符申測長函數(shù)charstr20="helloworld!"intlen;len=strlen(str);得出的結(jié)果是len的值為12strcat(字符申1的地址,字符申2的地址);將字符申2的內(nèi)容連接到字符申1的尾部。charstr120="ABC,str220="xyz"strcat(str1,str2);則程序運(yùn)行的結(jié)果
21、是strl內(nèi)存放的字符申變?yōu)锳BCxyz當(dāng)然str2存放的字符申還是xyz。strcmp(字符申1的地址,字符申2的地址);比較申1和申2哪個(gè)比較大。比較大小的依據(jù)是,兩個(gè)字符申從左往右相應(yīng)位置上第一個(gè)不相等的字符ASCII碼值之差。charstr120=”ABCE,str220=”ABDE;inti;i=strcmp(str1,str2);第一個(gè)不相等的字符為str1的CT和str2的D',而二者相差-1,故-1做為strcmp函數(shù)執(zhí)行的結(jié)果返回到被調(diào)用的位置,該位置位丁賦值表達(dá)式內(nèi),故將其值賦值給i,即此時(shí)i的值就是-1.strcpy(字符申1的地址,字符申2的地址);將字符申2的
22、內(nèi)容復(fù)制到字符申1內(nèi)。charstr120="ABC,str220="xyz"strcpy(str1,str2);此時(shí)str1的內(nèi)容為”xyz”,當(dāng)然str2的內(nèi)容沒變strcpy(str1,”uvw”);此時(shí)str1的內(nèi)容乂變成了“uvw"。十二、函數(shù)函數(shù)定義函數(shù)類型函數(shù)名(形式參數(shù)列表)內(nèi)部變量定義和聲明部分執(zhí)行語句如:intmax(intx,inty)intz;z=x>y?x:y;return(z);汪息點(diǎn):1. 函數(shù)類型是指返回值的類型,即要與return語句后跟的表達(dá)式的值的類型一致。若函數(shù)類型為void則說明該函數(shù)無返回值,即函數(shù)體里不
23、能出現(xiàn)return語句。2. 形式參數(shù)列表里定義的變量要記得給它們指定類型,而且如果同時(shí)要定義多個(gè),應(yīng)在每個(gè)前面都分別指定類型名,而不能寫成intx,y;函數(shù)體里能寫的語句跟main函數(shù)一樣,在開頭可定義所需要的變量,后面跟上一堆執(zhí)行語句。函數(shù)調(diào)用流程以上面的函數(shù)為例,在main函數(shù)進(jìn)行調(diào)用:voidmain()(inta,b,c;scanf("d%'d,&a,&b);printf(“d,max(a,b);或c=max(a,b);printf(“d,c)以上兩種方法都會(huì)在屏幕中打印出a,b問的較大值。調(diào)用函數(shù)的格式函數(shù)名(實(shí)際參數(shù)列表);調(diào)用的時(shí)候像什么函數(shù)類
24、型,形式參數(shù)的類型就不要加上去了。max(a,b)中max就是函數(shù)名,寫上變量名a,b是實(shí)際參數(shù)列表,執(zhí)行這個(gè)調(diào)用語句時(shí),會(huì)先把a(bǔ),b的值給相應(yīng)位置的形式參數(shù)即執(zhí)行了x=a,y=b這樣的操作,然后開始執(zhí)行max函數(shù)的函數(shù)體的語句。當(dāng)max函數(shù)體里執(zhí)行到一個(gè)return語句時(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也就是說執(zhí)行完max后把5返回到調(diào)用max的位置可看成printf(“d,5);或另一種解法的c=5。十三、指針指針變量的聲明:類型名*指針變量名;通過指針
25、變量訪問它所指向的普通變量的值先將普通變量的地址賦值給指針變量,再通過指針運(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ù)組元素的地址,則其加一減一得到的是那個(gè)數(shù)組元素下一個(gè)或前一個(gè)元素的地址。inta10;p=&a3;*p得到的是a3的值。若p+;此時(shí)p存放的是a4的地址&a4;*p得到的就是a4的值。或p-;此時(shí)p存放的是a2的地址&a2,*p得到的就是a2的值。行指針i. 主要是對(duì)丁二維數(shù)組來
26、說的,二維數(shù)組每行都有自己的地址,第0行地址用數(shù)組名表示,第i行地址為數(shù)組名+i;而想要得到二維數(shù)組里一個(gè)元素的地址,必需先得到其所在行的地址,然后再由那個(gè)地址得到元素的地址,比如說inta34;定義了一個(gè)二維數(shù)組,該二維數(shù)組第0行的地址為a,第1行的地址為a+1,第2行的地址為a+2,想從行的地址得到元素的地址,需在行地址前加上指針運(yùn)算符“*”,即*a就是第0行首個(gè)元素的地址即a00的地址,而a02的地址就是在a00的地址基礎(chǔ)上加上位移量2,即*a+2,然后想得到a02這個(gè)元素的值呢就再加上一個(gè)指針運(yùn)算符“*”,即*(*a+2),類似地,想得到a22這個(gè)元素的值呢就是*(*(a+2)+2)i
27、i. 定義行指針變量:類型名(*變量名)數(shù)組長度;如int(*p)4,a34;p=a;此時(shí)就可把p當(dāng)成a來用,用法同上所述。判斷是否合法訪問數(shù)組元素:若是指針法訪問,判斷指針后跟的是否地址;若是下標(biāo)法訪問,判斷下標(biāo)有無越界。函數(shù)指針:函數(shù)名即為函數(shù)的地址(指針)i. 函數(shù)指針變量的定義:類型名(*變量名)(形參歹U表);如int(*p)();賦值:指針變量=函數(shù)名;設(shè)有個(gè)函數(shù)其函數(shù)名為max,則要將該函數(shù)的地址給p的話只要執(zhí)行如下語句即可p=max;指針數(shù)組:指針數(shù)組的數(shù)組元素都是指針變量,是用來存放變量的地址的,定義格式為類型名*變量名數(shù)組長度;如int*p10;指向指針的指針:指針變量也是
28、一種變量,故在內(nèi)存中也有對(duì)應(yīng)的一個(gè)地址,而要存放指針變量的地址,就要求助丁用來存放指針變量的地址的指針變量,定義格式類型名*變量名;如int*p1;int*p2;inta=3;可進(jìn)行賦值p1=&a;p2=&p1;則a、*p1和*p2的值都是3.十四、宏定義無參宏定義#define標(biāo)識(shí)符值定義后,出現(xiàn)所定義的標(biāo)識(shí)符的地方都將以定義時(shí)指定的值來代替。#defineM2+3main()intx;x=M*M;則x的值為2+3*2+3=11若想得到的結(jié)果是(2+3)*(2+3)則定義時(shí)也寫成這樣#defineM(2+3)注意#define、標(biāo)識(shí)符、值之間都要用空格隔開,且宏定義結(jié)尾不需加
29、分號(hào)。帶參宏定義#define標(biāo)識(shí)符(參數(shù)表)值#defineS(x,y)x*ymain()inta=3,b=4,c=5,d=6;printf("a*b=%dn”,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ù)是不一樣的。自定義類型名typedef:對(duì)已存在的類型名取一個(gè)外號(hào)。i.基
30、本格式:typedef原類型名新類型名;ii.typedefintINTEGER;則inta,b;等價(jià)丁INTEGERa,b;typedefintNUM10;則inta10;等價(jià)丁NUMa;a即為一個(gè)有10個(gè)元素的數(shù)組的數(shù)組名。typedefint*INTEGER;則int*a,*b;等價(jià)丁INTEGERa,b;十五、結(jié)構(gòu)體,共用體,枚舉類型結(jié)構(gòu)體結(jié)構(gòu)體類型的定義及變量的定義struct結(jié)構(gòu)體名(類型成員1;類型成員2;類型成員n;變量名;如structstudent(longnum;charname10;intscore4;st1;定義類型時(shí)同時(shí)定義變量structstudentst2;定義類型后,用類型名定義變量還有一種struct(longnum;charname10;intscore4;st3;不給類型名,直接定義變量ii.結(jié)構(gòu)體變量所占字節(jié)數(shù):各成員各占字節(jié)數(shù)之和,如以上st1,st2,st3的字節(jié)數(shù)皆為10+20+2*4=38結(jié)構(gòu)體變量初始化:structstudenta=(20030001,"張三",70,75,80,85;iii. 結(jié)構(gòu)體數(shù)組定義及初始化:structstudenta3=20030001,"zhang",89,90,91,92,20030002,"liu",6
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 多肉植物種植活動(dòng)開展指南
- 老年人心血管系統(tǒng)疾病
- 2025西安郵電大學(xué)輔導(dǎo)員考試試題及答案
- 2025遼寧現(xiàn)代服務(wù)職業(yè)技術(shù)學(xué)院輔導(dǎo)員考試試題及答案
- T/ZHCA 011-2020祛斑美白類化妝品皮膚變態(tài)反應(yīng)體外測試方法人源細(xì)胞系激活試驗(yàn)法
- 柵欄創(chuàng)意美術(shù)課件
- 新生兒疫苗基礎(chǔ)知識(shí)與接種指南
- 小兒腹瀉脫水急救
- 2025年中小學(xué)美術(shù)教育考核試題及答案
- 技術(shù)創(chuàng)新與管理研究生考試題及答案2025年
- 山西洗煤廠安全管理人員機(jī)考題庫大全-上(單選、多選題)
- 硅酸鈣板、含鋯型硅酸鋁纖維棉、高鋁型硅酸鋁纖維棉技術(shù)規(guī)格
- 小學(xué)二年級(jí)下冊(cè)道德與法治《小水滴的訴說》教學(xué)教案
- GB∕T 15762-2020 蒸壓加氣混凝土板
- 護(hù)士分層級(jí)培訓(xùn)與管理課件
- 廣州版五年級(jí)英語下冊(cè)期末知識(shí)點(diǎn)復(fù)習(xí)ppt課件
- 照明電氣安裝工程施工方案及工藝方法要求
- 計(jì)算方法全書課件完整版ppt整本書電子教案最全教學(xué)教程ppt課件
- 公路工程施工安全技術(shù)規(guī)范-JTG-F90-2015
- 單代號(hào)網(wǎng)絡(luò)圖
- Q∕GDW 11958-2020 國家電網(wǎng)有限公司應(yīng)急預(yù)案編制規(guī)范
評(píng)論
0/150
提交評(píng)論