欧洲免费无码视频在线,亚洲日韩av中文字幕高清一区二区,亚洲人成人77777网站,韩国特黄毛片一级毛片免费,精品国产欧美,成人午夜精选视频在线观看免费,五月情天丁香宗合成人网

薈聚奇文、博采眾長、見賢思齊
當(dāng)前位置:公文素材庫 > 計劃總結(jié) > 工作總結(jié) > c語言總結(jié)

c語言總結(jié)

網(wǎng)站:公文素材庫 | 時間:2019-05-29 07:23:21 | 移動端:c語言總結(jié)

c語言總結(jié)

C語言實訓(xùn)總結(jié)

一.實訓(xùn)的前期準(zhǔn)備

(一)本次實訓(xùn)的主要目的與計劃目標(biāo)

本次實訓(xùn)周活動的對象是機械設(shè)計制造及其自動化四年制本科081016班的學(xué)生,他們本學(xué)期學(xué)習(xí)了C語言的課程,因此組織開展本次實訓(xùn)活動的主要目的一方面鍛煉并考查學(xué)生的學(xué)習(xí)情況,另一方面培養(yǎng)學(xué)生對計算機編程語言編程及上機操作、調(diào)試的能力。

通過本次實訓(xùn),進一步對所有學(xué)生的情況進行了解,有助于更好的幫助學(xué)生對C語言有更加深刻的認(rèn)識。(二)本次實訓(xùn)周活動的計劃方案說明

在制作實訓(xùn)周計劃時主要以學(xué)生C語言課程為導(dǎo)向,考察學(xué)生對編程軟件的認(rèn)識、操作能力,以及對所學(xué)課程內(nèi)容的掌握情況、編程能力、上機調(diào)試的能力。

(三)準(zhǔn)備工作

1.教師準(zhǔn)備(1)確定實訓(xùn)方案

通過與授課教師進行溝通,分析實訓(xùn)內(nèi)容,實訓(xùn)時間,并最后提出實訓(xùn)方案。該方案要求學(xué)生完成一個學(xué)生成績統(tǒng)計的程序。

(2)機器、程序等軟硬件設(shè)施準(zhǔn)備

在設(shè)備的準(zhǔn)備上,首先與圖書館機房進行溝通,提前做好了實訓(xùn)周的活動安排,包括涉及到實訓(xùn)的班級、教師的課程調(diào)整、實訓(xùn)周前期的設(shè)備維修、一些常用軟件的安裝、實訓(xùn)周的機房安排等。

2.學(xué)生準(zhǔn)備

在12周時就對學(xué)生進行了實訓(xùn)要求的講解,并要求學(xué)生完成了實訓(xùn)周工作計劃。通過計劃,學(xué)生了解了實訓(xùn)的訓(xùn)練內(nèi)容,并利用課余時間制定了大致的實訓(xùn)周時間安排。

二.實訓(xùn)周活動的實施過程

(一)學(xué)生實訓(xùn)流程

根據(jù)實訓(xùn)方案,學(xué)生要在周一到周三的3天的時間內(nèi)按照給定的任務(wù)編寫C語言的程序,其中具體的時間安排,由學(xué)生自己在制作實訓(xùn)計劃時大致給出。在實際的編程過程中,我們發(fā)現(xiàn)多數(shù)同學(xué)大概用了二天半的時間來完成C語言編程,剩下的時間用來檢查程序中的問題,總的來說時間分配還算比較合理。在實訓(xùn)過程中,我們也發(fā)現(xiàn)有部分學(xué)生對時間的安排上也較差,沒有對題目有一個清晰的認(rèn)識,思維比較混亂。還有學(xué)生在編程過程中遇到了困難后,并不是去想辦法解決困難,而是采用通過省略掉困難的方法來編寫程序,造成程序功能與題目要求存在了一定的出入。這些都說明了我們的學(xué)生還缺乏在在編程過程中對時間的掌控能力,還缺乏最基本的耐力和毅力,還缺乏不達目的決不罷休的一種精神。(二)教師指導(dǎo)

在實訓(xùn)過程中,采取巡視的方法、個別指導(dǎo)的方式對學(xué)生進行指導(dǎo)。在此期間,發(fā)現(xiàn)教師的指導(dǎo)作用對學(xué)生的程序的成功與否也起了比較大的作用。在指導(dǎo)過程中,往往教師的一個建議,就能讓學(xué)生收益良多。

三.實訓(xùn)周活動的成果

從本次實訓(xùn)周活動要求學(xué)生要完成任務(wù)書中的編程題目,從的最后的情況來看,許多同學(xué)能夠通過參照書中的一些例子,主動獨立的完成程序的編寫,而且在編寫過程中,很多語句簡潔,可以看出對C語言掌握的非常好,也非常感興趣。

當(dāng)然通過本次的實訓(xùn)活動,我們也發(fā)現(xiàn)了學(xué)生的一些不足之處,比如有些學(xué)生在編程過程中代碼語法存在很多錯誤,對于某些語句的意義理解得不好。

擴展閱讀:C語言知識點總結(jié)

C語言知識點總結(jié)

C語言知識點總結(jié)...........................................................................................................................1一、常量.....................................................................................................................................2二、標(biāo)識符.................................................................................................................................2三、變量.....................................................................................................................................2四、表達式.................................................................................................................................3五、輸入輸出函數(shù).....................................................................................................................4六、C語言的語句......................................................................................................................5七、C程序的基本結(jié)構(gòu)..............................................................................................................5八、選擇結(jié)構(gòu)語句.....................................................................................................................5

if(表達式)語句1else語句2........................................................................................5條件運算符表達式1?表達式2:表達式3...............................................................6switch語句.......................................................................................................................6九、循環(huán)結(jié)構(gòu).............................................................................................................................6

for循環(huán)語句....................................................................................................................6while循環(huán)語句dowhile循環(huán)語句...............................................................................6十、數(shù)組.....................................................................................................................................7十一、字符串函數(shù).........................................................................................................................7十二、函數(shù).....................................................................................................................................8十三、指針.....................................................................................................................................9十四、宏定義...............................................................................................................................10十五、結(jié)構(gòu)體,共用體,枚舉類型...........................................................................................10十六、TurboC的使用................................................................................錯誤!未定義書簽。一、常量

數(shù)字常量

i.普通數(shù)字:1,35,2.7

ii.指數(shù)形式:2.45e-2等價于2.45*10-2注意e大小寫皆可,e前面的數(shù)字不能省,就算是1也不能省,后面的數(shù)字一定要是整數(shù)

iii.長整型,單精度浮點型:3235L,32.5F分別表示3235是長整型數(shù)據(jù),

32.5是單精度浮點型左,若不寫上L,F(xiàn)則表示3235是整型,32.5是雙精度浮點型,L,F(xiàn)大小寫皆可

字符常量

i.普通字符常量:用單引號把一個字符括起來,如A,@

ii.轉(zhuǎn)義字符常量:一對單引號括起來并以“\\”開頭的字符序列,如\\n(回

車)、\\123(8進制123對應(yīng)的字符),\\x23(16進制23對應(yīng)的字符)

字符串常量

用一對雙引號把一個字符序列括起來,如“ABCef”,系統(tǒng)存放字符串常量,每個字符分配一個字節(jié),各字符所占字節(jié)緊鄰,并且字符串末尾會給再開一個字節(jié)里面放一個’\\0’做為結(jié)束標(biāo)志。

符號常量

定義格式#define符號常量名符號常量值,如#defineN20則定義了符號常量N,其值為20,注意符號常量名和符號常量值之間是用空格隔開,而不是寫上=號,#define和符號常量名之間也有空格的。

二、標(biāo)識符

命名規(guī)則

以數(shù)字,字母,下劃線這三類字符組成,但只能以字母或下劃線開頭,而不能也數(shù)字開頭,另外不能將關(guān)鍵字做為標(biāo)識符。32個關(guān)鍵字表在P365附錄B

變量名,函數(shù)名,符號常量名全都是標(biāo)識符

三、變量

變量的定義格式

類型名變量名;

如inta;定義了一個整型常量a。變量名是由人類隨便定義的,符合命名規(guī)則的前提下,愛寫啥就寫啥。所以什么flag,cc,y1或者函數(shù)名fun,find等全部是自定的用來做為名字而已,沒有更特別的意義。

類型名

int整型,long長整型:用于存放整數(shù),只是數(shù)值范圍不同

float單精度浮點型double雙精度浮點型:用于存放實數(shù),數(shù)值范圍,精度不同

char字符型:用于存放字符

變量賦值,初始化

inta=3;定義的同時初始化a=6*9;定義后在程序中進行賦值

變量的值只有在賦值操作時才會被改變,即將其放在等號左邊時才會改變它的值,或自增自減操作:a=5,a++,a--,像a+3并未改變a的值,只是使用了a

的值而已.

自增自減運算

變量++,++變量,變量--,--變量使變量的值自增1或自減1等價于變量=變量+1變量=變量-1++,--放于變量前后效果的區(qū)別:

當(dāng)自增自減運算做為表達式的一部分時,++,--放在變量前面是先自增自減再使用變量的值,放在變量后面則是先使用變量的值,再自增自減。如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++;這樣的操作,則打印出3,當(dāng)然最后x的值還是4。

四、表達式

運算符和運算對象

一個運算符都有若干個運算對象,如+必然要跟兩個運算對象才能進行加法運算:3+5。C語言里稱需要跟n個運算對象的運算符為n元運算符。一元運算符有:!,(類型名)二元運算符有:+,-,*,/,%(求余),=,+=,-=,*=,/=,%=,<,>,=,==(等于),!=(不等于),&&(且),||(或)多元運算符有:,

運算符的優(yōu)先級和結(jié)合性

i.優(yōu)先級:同一個運算對象左右兩邊若同時有兩個運算符,則這兩個運算

符優(yōu)先級高的先進行運算。

ii.結(jié)合性:若同一個運算對象左右兩邊的兩個運算符優(yōu)先級相同,則根據(jù)

結(jié)合性判斷先進行哪個運算,自左自右結(jié)合性的先算左邊的運算符,自右自左的先算右邊的運算符。

iii.各運算符的優(yōu)先級和結(jié)合性見P365附錄C強制類型轉(zhuǎn)換

格式:(類型名)表達式。將后跟的表達式的值的數(shù)據(jù)類型轉(zhuǎn)換為與圓括號內(nèi)的類型名一致的類型。注意類型名一定要用()括起來。

算術(shù)表達式

i.算術(shù)運算符:+,-,*,/,%(求余)

ii.由算術(shù)運算符加上運算對象構(gòu)成算術(shù)表達式,如3+3*6-9/2iii.值:跟我們小學(xué)時學(xué)的一樣,就是表達式的計算結(jié)果iv.整數(shù)除以整數(shù)結(jié)果取整數(shù)部分,故1/3得到的值是0v.5%3結(jié)果為2,想想小學(xué)除法,求余得到的是余數(shù)不是商。賦值表達式

i.賦值運算符:=,+=,-=,*=,/=,%=

ii.賦值表達式:變量=表達式,如x=3+6,x+=6-9,x+=x*=3+4注意等號左邊只能是變量

iii.復(fù)合賦值運算符的運算:以/=為例:x/=表達式等價于x=x/(表達式)iv.值:=號左邊的變量最終的值關(guān)系表達式

i.關(guān)系運算符:<,>,=,==(等于),!=(不等于)

ii.由關(guān)系運算符加上運算對象構(gòu)成關(guān)系表達式,如3>=4,2==aiii.值:滿足相應(yīng)運算符所指定的關(guān)系的值為1,否則為0邏輯表達式

i.邏輯運算符:&&(且),||(或),!(非)

ii.由邏輯運算符加上運算對象構(gòu)成邏輯表達式,如3&&4,x||!yiii.值:滿足相應(yīng)運算符所指定的關(guān)系的值為1,否則為0

iv.進行||或運算時,若||左邊的表達式值為1,則不再對右邊的表達式v.

進行運算。進行&&且運算時,若&&左邊的表達式值為0,則不再對右邊的表達式進行運算。逗號表達式

i.逗號運算符:,

ii.用逗號將各種表達式連續(xù)起來構(gòu)成逗號表達式,如3+4,a=9,8*a

iii.值:組成逗號表達式的各個表達式中的最后一個的值,如上例為8*a題目:P711~17P818~33

五、輸入輸出函數(shù)

scanf(“格式控制串”,變量地址表列);

如scanf(“%d%c%d”,&a,&ch,&b);scanf(“%4f”,&x);注意:

i.格式控制串可控制截取用戶輸入的前幾個字符給變量,但不能控制輸入

幾位小數(shù)給變量,如不能寫成scanf(“%4.2f”,&x);

ii.第二個參數(shù)給的是地址,即要么是&+變量名或數(shù)組元素名的形式,要

么就是一個數(shù)組名或指針變量名,如int*p,a;p=&a;scanf(“%d”,p);iii.考試時注意看題目給你寫好的scanf的格式1.若其格式控制串內(nèi)各格式符用“,”隔開如

scanf(“%d,%c,%d”,&a,&ch,&b);那輸入時也要用逗號隔開,如此例輸入時應(yīng):3,+,5

2.若是這種格式scanf(“%d%d”,&a,&b);則輸入時應(yīng):35;

3.若是這種格式scanf(“%d%c%d”,&a,&ch,&b);則輸入時應(yīng)3+5,若寫成3

+5則a=3,ch=‘’(空格),b=任意值(自己上機運行看看結(jié)果)

printf(“格式控制串”,輸出項表列);

如floatx=7.5;printf(“%8.2f”,x);此處的意思是將x打印出來,且占8列,保留兩位小數(shù)。自己上機運行看看效果。

常用格式符匯總:

i.%d:輸入輸出整型數(shù)據(jù),%ld:輸入輸出長整型數(shù)據(jù)ii.%c:輸入輸出字符型數(shù)據(jù)

iii.%f:輸出單(雙)精度浮點型數(shù)據(jù),輸入單精度型數(shù)

據(jù)。%lf:輸入雙精度型數(shù)據(jù)

iv.%s:輸入輸出一個字符串,用printf輸出字符串時,輸出項書寫時可

為字符串常量,或字符數(shù)組名。如printf(“%s”,”hello”);或charstr[10]=”hello”;printf(“%s”,str);%u:輸入輸出無符號整型,%o:輸入輸出八進制數(shù),%x:輸入輸出十六進制數(shù)

getchar();

函數(shù)調(diào)用后返回用戶輸入的一個字符,故需再定義一個變量來存放這個字符,即使用時應(yīng)charc;c=getchar();意思就是接收用戶輸入的一個字符,并將其賦值給變量c。

putchar(字符常量或字符變量名);

如charc=A;putchar(c);或putchar(A);都會向屏幕輸出字符A。

v.

六、C語言的語句

表達式語句:由表達式末尾加上分號構(gòu)成。

函數(shù)調(diào)用語句:由函數(shù)調(diào)用表達式加上分號構(gòu)成?照Z句:;

選擇結(jié)構(gòu)語句:if語句switch語句

循環(huán)語句:for語句while語句dowhile語句

復(fù)合語句:用花括號{}將以上任意語句括起來構(gòu)成一條復(fù)合語句。

七、C程序的基本結(jié)構(gòu)

voidmain()

{聲明部分:用來定義變量和聲明自定義函數(shù)的原型,需以“;”結(jié)尾,如intx;執(zhí)行語句部分:第六點里介紹的各種語句,如x=3;printf(“%d”,x);}

main函數(shù)外可寫自定義函數(shù)。如intmax(){

return0;}

八、選擇結(jié)構(gòu)語句

if(表達式)語句1else語句2

如果if語句的圓括號內(nèi)的表達式值為非0,則執(zhí)行語句1,值為0則執(zhí)行語句2。

i.表達式可為任意表達式,if語句執(zhí)行的實質(zhì)是判斷表達式的值是否為0

來決定執(zhí)行語句1還是語句2。另外請在此處表達嚴(yán)重關(guān)切,不管是高ii.

手還是菜鳥經(jīng)常會把判斷兩個數(shù)相等的符號“==”寫成了一個等號“=”成為了賦值運算,這樣的寫法不會引發(fā)編譯錯誤,但結(jié)果會與原意大大不同,所以考試前請再三提醒自己。

語句1和語句2都只能是一個語句,若要跟多條語句,切記用一對{}括起來,構(gòu)成復(fù)合語句;也不要隨便在圓括號后加“;”,因“;”構(gòu)成一條空語句,這會使后面跟的語句1不再屬于if語句的組成部分。if語句的三種結(jié)構(gòu)

單邊:if(表達式)語句

雙邊:if(表達式)語句1else語句2多層(重點掌握):

iii.1.2.3.if(表達式1)語句1elseif(表達式2)語句2elseif(表達式3)語句3…

else語句n

條件運算符表達式1?表達式2:表達式3

若表達式1的值非0,則取表達式2的值做為整個表達式的值,否則取表達式3的值為整個表達式的值。如3>4?1:2該表達式的值為2switch語句

switch(表達式){case表達式1:語句case表達式2:語句…

case表達式n:語句default:語句}

語句執(zhí)行過程:先計算表達式的值,然后判斷該值與表達式1到表達式n中的哪個相等,若與表達式i的值相等,則執(zhí)行表達式i后的所有語句,當(dāng)遇到break;語句時結(jié)束整個switch語句的執(zhí)行。表達式1到表達式n的值都不相等的情況下執(zhí)行default后跟的語句。每個case后可跟多條語句。

九、循環(huán)結(jié)構(gòu)

for循環(huán)語句

for(表達式1;表達式2;表達式3)循環(huán)體語句語句執(zhí)行過程:1.計算表達式1

2.判斷表達式2的值是否為0,若為0,語句執(zhí)行結(jié)束,若不為0,進入

步驟3

3.執(zhí)行循環(huán)體語句(需注意的是循環(huán)體語句只能有一個語句,若要包含多個語句要用一對{}括起來,構(gòu)成一條復(fù)合語句,此處也不要隨便加上“;”,因一個“;”可構(gòu)成一條空語句,這會使得后面真正的循環(huán)體語句不屬于for循環(huán)語句的部分)。進入步驟4

4.計算表達式3,然后重新進入步驟2

while循環(huán)語句dowhile循環(huán)語句

i.while(表達式)循環(huán)體語句執(zhí)行過程:

1.判斷表達式的值是否為非0,若是進入步驟2,否則結(jié)束語句執(zhí)行。2.執(zhí)行循環(huán)體語句,重新回到步驟1。ii.do循環(huán)體語句while(表達式);執(zhí)行過程:

1.執(zhí)行循環(huán)體語句,進入步驟2

2.判斷表達式的值是否為非0,若是重新回到步驟1,否則結(jié)束語句執(zhí)行。這里要注意的地方跟for語句一樣,即循環(huán)體語句只能有一個語句,若要包含多個語句要用一對{}括起來,構(gòu)成一條復(fù)合語句,此處也不要隨便加上“;”,因一個“;”可構(gòu)成一條空語句,這會使得后面真正的循環(huán)體語句不屬于while循環(huán)語句的部分,另外dowhile循環(huán)的while(表達式)后是要加“;”的。break語句:放在循環(huán)體內(nèi)實現(xiàn)的功能是結(jié)束其所在的那層循環(huán)的執(zhí)行。十、數(shù)組

定義格式:數(shù)據(jù)類型數(shù)組名[整型常量];如inta[10];定義了一個整型數(shù)

組,數(shù)組名為a,這個數(shù)組含有10個元素。

引用數(shù)組元素:格式:數(shù)組名[下標(biāo)]切記下標(biāo)值從0開始。下標(biāo)可為常

量,表達式,變量等,如inti=3;a[0]=5;a[3*2]=9;a[i]=7;

初始化:數(shù)據(jù)類型數(shù)組名[整型常量]={數(shù)據(jù)表列};將數(shù)據(jù)表列的各個值

依次賦值給數(shù)組的各個元素。如inta[5]={0,1,2,3,4};則數(shù)組a各元素a[0]到a[4]的值分別為0,1,2,3,4遍歷數(shù)組元素

數(shù)組定義后,我們不能對數(shù)組進行整體的操作,如inta[10];不能用a=3這樣的操作將數(shù)組的各元素都賦值為3;而只能一個一個元素的進行賦值,如a[0]=3;a[1]=3;a[2]=3…a[9]=3;當(dāng)然此時我們就可以借助于一個for循環(huán)來控制下標(biāo)的變化從而對數(shù)組的各個元素進行賦值for(i=0;istrcat(str1,str2);

則程序運行的結(jié)果是str1內(nèi)存放的字符串變?yōu)锳BCxyz,當(dāng)然str2存放的字符串還是xyz。

strcmp(字符串1的地址,字符串2的地址);

比較串1和串2哪個比較大。比較大小的依據(jù)是,兩個字符串從左往右相應(yīng)位置上第一個不相等的字符ASCII碼值之差。charstr1[20]=”ABCE”,str2[20]=”ABDE”;inti;

i=strcmp(str1,str2);

第一個不相等的字符為str1的‘C’和str2的‘D’,而二者相差-1,故-1做為strcmp函數(shù)執(zhí)行的結(jié)果返回到被調(diào)用的位置,該位置位于賦值表達式內(nèi),故將其值賦值給i,即此時i的值就是-1.

strcpy(字符串1的地址,字符串2的地址);

將字符串2的內(nèi)容復(fù)制到字符串1內(nèi)。charstr1[20]=”ABC”,str2[20]=”xyz”;

strcpy(str1,str2);此時str1的內(nèi)容為”xyz”,當(dāng)然str2的內(nèi)容沒變strcpy(str1,”uvw”);此時str1的內(nèi)容又變成了“uvw“。

十二、函數(shù)

函數(shù)定義

函數(shù)類型函數(shù)名(形式參數(shù)列表){

內(nèi)部變量定義和聲明部分執(zhí)行語句}如:

intmax(intx,inty){intz;

z=x>y?x:y;return(z);}

注意點:

1.函數(shù)類型是指返回值的類型,即要與return語句后跟的表達式的值的類型一致。若函數(shù)類型為void則說明該函數(shù)無返回值,即函數(shù)體里不能出現(xiàn)return語句。2.形式參數(shù)列表里定義的變量要記得給它們指定類型,而且如果同時要定義多個,應(yīng)在每個前面都分別指定類型名,而不能寫成intx,y;

3.函數(shù)體里能寫的語句跟main函數(shù)一樣,在開頭可定義所需要的變量,后面跟上一堆執(zhí)行語句。函數(shù)調(diào)用流程

以上面的函數(shù)為例,在main函數(shù)進行調(diào)用:voidmain(){inta,b,c;

scanf(“%d%d”,&a,&b);

printf(“%d”,max(a,b));或c=max(a,b);printf(“%d”,c)以上兩種方法都會在屏幕中打印出a,b間的較大值。

調(diào)用函數(shù)的格式函數(shù)名(實際參數(shù)列表);調(diào)用的時候像什么函數(shù)類型,形式參數(shù)的類型就不要加上去了。max(a,b)中max就是函數(shù)名,寫上變量名a,b是實際參數(shù)列表,執(zhí)行這個調(diào)用語句時,會先把a,b的值給相應(yīng)位置的形式參數(shù)即執(zhí)行了x=a,y=b這樣的操作,然后開始執(zhí)行max函數(shù)的函數(shù)體的語句。當(dāng)max函數(shù)體里執(zhí)行到一個return語句時,則max函數(shù)結(jié)束執(zhí)行,將return后的表達式的值返回給main函數(shù)調(diào)用max函數(shù)的那個位置,即若上面a=3,b=5則max(a,b)return后的表達式的值應(yīng)該是5也就是說執(zhí)行完max后把5返回到調(diào)用max的位置可看成printf(“%d”,5);或另一種解法的c=5。}

十三、指針

指針變量的聲明:類型名*指針變量名;通過指針變量訪問它所指向的普通變量的值

先將普通變量的地址賦值給指針變量,再通過指針運算符*得到普通變量的值。int*p,x,y;x=3;p=&x;

則printf(“%d”,*p);會打印出3即x的值y=*p;則y的值變?yōu)?*p=5;則x的值變?yōu)?

指針變量加上(減去)一個位移的效果

若指針變量存入的是數(shù)組元素的地址,則其加一減一得到的是那個數(shù)組元素下一個或前一個元素的地址。inta[10];p=&a[3];

*p得到的是a[3]的值。

若p++;此時p存放的是a[4]的地址&a[4];*p得到的就是a[4]的值;騪--;此時p存放的是a[2]的地址&a[2],*p得到的就是a[2]的值。

行指針

i.主要是對于二維數(shù)組來說的,二維數(shù)組每行都有自己的地址,第0行地

址用數(shù)組名表示,第i行地址為數(shù)組名+i;而想要得到二維數(shù)組里一個元素的地址,必需先得到其所在行的地址,然后再由那個地址得到元素的地址,比如說inta[3][4];定義了一個二維數(shù)組,該二維數(shù)組第0行的地址為a,第1行的地址為a+1,第2行的地址為a+2,想從行的地址得到元素的地址,需在行地址前加上指針運算符“*”,即*a就是第0行首個元素的地址即a[0][0]的地址,而a[0][2]的地址就是在a[0][0]的地址基礎(chǔ)上加上位移量2,即*a+2,然后想得到a[0][2]這個元素的值呢就再加上一個指針運算符“*”,即*(*a+2),類似地,想得到a[2][2]這個元素的值呢就是*(*(a+2)+2)

ii.定義行指針變量:類型名(*變量名)[數(shù)組長度];

如int(*p)[4],a[3][4];p=a;此時就可把p當(dāng)成a來用,用法同上所述。

判斷是否合法訪問數(shù)組元素:若是指針法訪問,判斷指針后跟的是否地址;

若是下標(biāo)法訪問,判斷下標(biāo)有無越界。函數(shù)指針:函數(shù)名即為函數(shù)的地址(指針)

i.函數(shù)指針變量的定義:類型名(*變量名)(形參列表);如int(*p)();ii.賦值:指針變量=函數(shù)名;設(shè)有個函數(shù)其函數(shù)名為max,則要將該函數(shù)的

地址給p的話只要執(zhí)行如下語句即可p=max;

指針數(shù)組:指針數(shù)組的數(shù)組元素都是指針變量,是用來存放變量的地址的,

定義格式為類型名*變量名[數(shù)組長度];如int*p[10];指向指針的指針:指針變量也是一種變量,故在內(nèi)存中也有對應(yīng)的一個地址,

而要存放指針變量的地址,就要求助于用來存放指針變量的地址的指針變量,定義格式類型名**變量名;如int*p1;int**p2;inta=3;可進行賦值p1=&a;p2=&p1;則a、*p1和**p2的值都是3.

十四、宏定義

無參宏定義#define標(biāo)識符值定義后,出現(xiàn)所定義的標(biāo)識符的地方都

將以定義時指定的值來代替。

#defineM2+3main(){intx;

x=M*M;則x的值為2+3*2+3=11若想得到的結(jié)果是(2+3)*(2+3)則定義時也寫成這樣#defineM(2+3)}

注意#define、標(biāo)識符、值之間都要用空格隔開,且宏定義結(jié)尾不需加分號。帶參宏定義#define標(biāo)識符(參數(shù)表)值

#defineS(x,y)x*ymain()

{inta=3,b=4,c=5,d=6;

printf("a*b=%d\\n",S(a,b));此時會打印出a*b=12

printf("a+b*c+d=%d\\n",S(a+b,c+d));此時會打印出a+b*c+d=29,帶參宏定義執(zhí)行時是將a+b這樣一個表達式代替x,c+d這樣一個表達式代替y,所以S(a+b,c+d)進行的是a+b*c+d的運算,而不是將a+b的值給x,c+d的值給y然后再做x*y,這點跟函數(shù)調(diào)用傳遞參數(shù)是不一樣的。}

自定義類型名typedef:對已存在的類型名取一個外號。

i.基本格式:typedef原類型名新類型名;

ii.typedefintINTEGER;則inta,b;等價于INTEGERa,b;

iii.typedefintNUM[10];則inta[10];等價于NUMa;a即為一個有10

個元素的數(shù)組的數(shù)組名。

iv.typedefint*INTEGER;則int*a,*b;等價于INTEGERa,b;

十五、結(jié)構(gòu)體,共用體,枚舉類型

結(jié)構(gòu)體

i.結(jié)構(gòu)體類型的定義及變量的定義

struct結(jié)構(gòu)體名{類型成員1;類型成員2;……

類型成員n;}變量名;如

structstudent{longnum;charname[10];intscore[4];

}st1;定義類型時同時定義變量

structstudentst2;定義類型后,用類型名定義變量還有一種struct

{longnum;

charname[10];intscore[4];

}st3;不給類型名,直接定義變量

ii.結(jié)構(gòu)體變量所占字節(jié)數(shù):各成員各占字節(jié)數(shù)之和,如以上st1,st2,st3的

字節(jié)數(shù)皆為10+20+2*4=38

iii.結(jié)構(gòu)體變量初始化:structstudenta={201*0001,"張三",70,75,80,85};iv.結(jié)構(gòu)體數(shù)組定義及初始化:

structstudenta[3]={{201*0001,"zhang",89,90,91,92},{201*0002,"liu",68,69,70,71},{201*0003,"li",57,58,59,60}};v.結(jié)構(gòu)體變量成員的訪問

1.結(jié)構(gòu)體變量名.成員名如st1.num2.使用結(jié)構(gòu)體類型的指針:

(*結(jié)構(gòu)體指針名).成員或結(jié)構(gòu)體指針名>成員名structstudent*st;st=&st1;st->num或(*st).num共用體

i.共用體類型的定義及變量的定義

union共用體名{類型成員名1;

…類型成員名n;

};

變量的定義與結(jié)構(gòu)體類似,也有三種方法。uniondata{

inti;charch;floatf;

}d1;定義類型時同時定義變量

uniondatad2;定義類型后,用類型名定義變量union{

inti;charch;floatf;

}d3;不給類型名,直接定義變量

ii.共用體變量所占字節(jié)數(shù):各成員所占字節(jié)數(shù)的最大值,如上d1,d2,d3所

占字節(jié)數(shù)皆為4.(單精度浮點型變量所占字節(jié)數(shù)最多為4).iii.共用體變量成員的訪問

1.共用體變量名.成員名如d1.i2.使用共用體類型的指針:

(*共用體指針名).成員或共用體指針名>成員名uniondata*dd;dd=&d1;dd->i或(*dd).i

iv.共用體成員的值:由于共用體各成員共用同一段內(nèi)存區(qū),故同一時刻

只有一個成員的值是正確的。如d1.i=5;d1.ch=’a’;則此時d1.i的值就不是5了,而是其他值了,d1.ch的值是’a’

枚舉類型

i.枚舉類型的定義:

enum枚舉名{枚舉元素名1,枚舉元素名2,…,枚舉元素名n};ii.枚舉元素的值:

默認(rèn)值分別為0、1、…、n-1。枚舉元素的值也可在定義時重指定,對于沒有指定值的元素,按順序加1

如enumweekday{sun=7,mon=1,tue,wend,thur,fri,sat};則sun值為7,mon值為1,tue值為2,wend值為3,thur值為4,fri值為5,sat值為6

友情提示:本文中關(guān)于《c語言總結(jié)》給出的范例僅供您參考拓展思維使用,c語言總結(jié):該篇文章建議您自主創(chuàng)作。

來源:網(wǎng)絡(luò)整理 免責(zé)聲明:本文僅限學(xué)習(xí)分享,如產(chǎn)生版權(quán)問題,請聯(lián)系我們及時刪除。


c語言總結(jié)》由互聯(lián)網(wǎng)用戶整理提供,轉(zhuǎn)載分享請保留原作者信息,謝謝!
鏈接地址:http://www.7334dd.com/gongwen/673549.html