一区二区三区日韩精品-日韩经典一区二区三区-五月激情综合丁香婷婷-欧美精品中文字幕专区

分享

c語(yǔ)言重點(diǎn)知識(shí)點(diǎn)復(fù)習(xí)資料(5)

 昵稱29273511 2015-12-22



第六章

指針變量的本質(zhì)是用來(lái)放地址,而一般的變量是放數(shù)值的。

1、int *p 中 *p和p的差別:簡(jiǎn)單說(shuō)*p是數(shù)值,p是地址!

*p可以當(dāng)做變量來(lái)用;*的作用是取后面地址p里面的數(shù)值

p是當(dāng)作地址來(lái)使用。可以用在scanf函數(shù)中:scanf(“%d”,p);

2、*p++ 和 (*p)++的之間的差別:改錯(cuò)題目中很重要!考試超級(jí)重點(diǎn)

*p++是 地址會(huì)變化。 口訣:取當(dāng)前值,然后再移動(dòng)地址!

(*p)++ 是數(shù)值會(huì)要變化。 口訣:取當(dāng)前值,然后再使數(shù)值增加1。

例題:int *p,a[]={1,3,5,7,9};

p=a;

請(qǐng)問(wèn)*p++和(*p)++的數(shù)值分別為多少?

*p++: 這個(gè)本身的數(shù)值為1。由于是地址會(huì)增加一,所以指針指向數(shù)值3了。

(*p)++ 這個(gè)本身的數(shù)值為1。由于有個(gè)++表示數(shù)值會(huì)增加,指針不移動(dòng),但數(shù)值1由于自加了一次變成了2。

3、二級(jí)指針:

*p:一級(jí)指針:存放變量的地址。

**q:二級(jí)指針:存放一級(jí)指針的地址。

常考題目: int x=7;

int*p=&x,**q=p;

問(wèn)你:*p為多少?*q為多少?**q為多少?

7 p 7

再問(wèn)你:**q=&x的寫法可以嗎?

不可以,因?yàn)槎?jí)指針只能存放一級(jí)指針的地址。

4、三名主義:(考試的重點(diǎn))

數(shù)組名:表示第一個(gè)元素的地址。數(shù)組名不可以自加,他是地址常量名。(考了很多次)

函數(shù)名:表示該函數(shù)的入口地址。

字符串常量名:表示第一個(gè)字符的地址。

5、移動(dòng)指針(經(jīng)常加入到考試中其他題目綜合考試)

char *s=“meikanshu”

while(*s){printf(“%c”,*s);s++;}

這個(gè)s首先會(huì)指向第一個(gè)字母m然后通過(guò)循環(huán)會(huì)一次打印出一個(gè)字符,s++是地址移動(dòng),打印了一個(gè)字母后,就會(huì)移動(dòng)到下一個(gè)字母!

6、指針變量?jī)煞N初始化(一定要看懂)

方法一:int a=2,*p=&a;(定義的同時(shí)初始化)

方法二:int a=2,*p;  (定義之后初始化)

    p=&a;

7、傳數(shù)值和傳地址(每年必考好多題目)

void fun(int a,int b) void fun(int *a,int *b)

{ int t ; { int t ;

t=a;a=b;b=t; t=*a;*a=*b;*b=t;

} }

main() main()

{ int x=1,y=3, { int x=1,y=3,

fun(x,y); fun(&x,&y)

printf(“%d,%d”,x,y); printf(“%d,%d”,x,y);

} }

這個(gè)題目答案是1和3。 這個(gè)題目的答案就是3和1。

傳數(shù)值,fun是用變量接受,所以fun中 傳地址,fun用指針接受!這個(gè)時(shí)候fun

的交換不會(huì)影響到main中的x和y 。 中的交換,就會(huì)影響到main中的x和y。

傳數(shù)值,形參的變化不會(huì)影響實(shí)參。 傳地址形參的變化絕大多數(shù)會(huì)影響到實(shí)參!

8、函數(shù)返回值是地址,一定注意這個(gè)*號(hào)(上機(jī)考試重點(diǎn))

int *fun(int *a,int *b) 可以發(fā)現(xiàn)函數(shù)前面有個(gè)*,這個(gè)就說(shuō)明函數(shù)運(yùn)算結(jié)果是地址

{ if(*a>*b)return a; return a 可以知道返回的是a地址。

else return b;

}

main()

{ int x=7,y=8,*max;

max = fun(&x,&y); 由于fun(&x,&y)的運(yùn)算結(jié)果是地址,所以用max來(lái)接收。

printf(“%d,%d”,)

}

9、考試重要的話語(yǔ):

指針變量是存放地址的。并且指向哪個(gè)就等價(jià)哪個(gè),所有出現(xiàn)*p的地方都可以用它等價(jià)的代替。例如:int a=2,*p=&a;

    *p=*p+2;

(由于*p指向變量a,所以指向哪個(gè)就等價(jià)哪個(gè),這里*p等價(jià)于a,可以相當(dāng)于是a=a+2) 

第七章

數(shù)組: 存放的類型是一致的。多個(gè)數(shù)組元素的地址是連續(xù)的。

1、一維數(shù)組的初始化:

int a[5]={1,2,3,4,5}; 合法

int a[5]={1,2,3, }; 合法

int a[]={1,2,3,4,5}; 合法,??迹竺鏇Q定前面的大?。?/p>

int a[5]={1,2,3,4,5,6}; 不合法,賦值的個(gè)數(shù)多余數(shù)組的個(gè)數(shù)了

2、一維數(shù)組的定義;

int a[5];注意這個(gè)地方有一個(gè)重要考點(diǎn),定義時(shí)數(shù)組的個(gè)數(shù)不是變量一定是常量。

int a[5] 合法,最正常的數(shù)組

int a[1+1] 合法,個(gè)數(shù)是常量2,是個(gè)算術(shù)表達(dá)式

int a[1/2+4] 合法,同樣是算術(shù)表達(dá)式

int x=5,int a[x]; 不合法,因?yàn)閭€(gè)數(shù)是x,是個(gè)變量,非法的,

define P 5 int a[P] 合法,define 后的的P是符號(hào)常量,只是長(zhǎng)得像變量

3、二維數(shù)組的初始化

int a[2][3]={1,2,3,4,5,6}; 合法,很標(biāo)準(zhǔn)的二維的賦值。

int a[2][3]={1,2,3,4,5, }; 合法,后面一個(gè)默認(rèn)為0。

int a[2][3]={{1,2,3,} {4,5,6}}; 合法,每行三個(gè)。

int a[2][3]={{1,2,}{3,4,5}}; 合法,第一行最后一個(gè)默認(rèn)為0。

int a[2][3]={1,2,3,4,5,6,7}; 不合法,賦值的個(gè)數(shù)多余數(shù)組的個(gè)數(shù)了。

int a[][3]={1,2,3,4,5,6}; 不合法,不可以缺省行的個(gè)數(shù)。

int a[2][]={1,2,3,4,5,6}; 合法,可以缺省列的個(gè)數(shù)。

補(bǔ)充:

1)一維數(shù)組的重要概念:

對(duì)a[10]這個(gè)數(shù)組的討論。

1、a表示數(shù)組名,是第一個(gè)元素的地址,也就是元素a[0]的地址。(等價(jià)于&a)

2、a是地址常量,所以只要出現(xiàn)a++,或者是a=a+2賦值的都是錯(cuò)誤的。

3、a是一維數(shù)組名,所以它是列指針,也就是說(shuō)a+1是跳一列?!?/p>

對(duì)a[3][3]的討論。

1、a表示數(shù)組名,是第一個(gè)元素的地址,也就是元素a[0][0]的地址。

2、a是地址常量,所以只要出現(xiàn)a++,或者是a=a+2賦值的都是錯(cuò)誤的。

3、a是二維數(shù)組名,所以它是行指針,也就是說(shuō)a+1是跳一行。

4、a[0]、a[1]、a[2]也都是地址常量,不可以對(duì)它進(jìn)行賦值操作,同時(shí)它們都是列指針,a[0]+1,a[1]+1,a[2]+1都是跳一列。

5、注意a和a[0] 、a[1]、a[2]是不同的,它們的基類型是不同的。前者是一行元素,后三者是一列元素。

2) 二維數(shù)組做題目的技巧:

如果有a[3][3]={1,2,3,4,5,6,7,8,9}這樣的題目。

步驟一:把他們寫成:      第一列 第二列 第三列  

a[0]à  1    2    3 ->第一行

a[1]à 4   5    6  —>第二行

a[2]à 7   8    9  ->第三行

步驟二:這樣作題目間很簡(jiǎn)單:    

*(a[0]+1)我們就知道是第一行的第一個(gè)元素往后面跳一列,那么這里就是a[0][1]元素,所以是1。

*(a[1]+2)我們就知道是第二行的第一個(gè)元素往后面跳二列。那么這里就是a[1][2]元素,所以是6。

一定記?。褐灰嵌S數(shù)組的題目,一定是寫成如上的格式,再去做題目,這樣會(huì)比較簡(jiǎn)單。

3) 數(shù)組的初始化,一維和二維的,一維可以不寫,二維第二個(gè)一定要寫

int a[]={1,2} 合法。 int a[][4]={2,3,4}合法。 但int a[4][]={2,3,4}非法。

4) 二維數(shù)組中的行指針

int a[1][2];

其中a現(xiàn)在就是一個(gè)行指針,a+1跳一行數(shù)組元素。 搭配(*)p[2]指針

a[0],a[1]現(xiàn)在就是一個(gè)列指針。a[0]+1 跳一個(gè)數(shù)組元素。搭配*p[2]指針數(shù)組使用

5) 還有記住脫衣服法則:超級(jí)無(wú)敵重要

a[2] 變成 *(a+2) a[2][3]變成 *(a+2)[3]再可以變成 *(*(a+2)+3)

這個(gè)思想很重要!

其它考試重點(diǎn)

文件的復(fù)習(xí)方法:

把上課時(shí)候講的文件這一章的題目要做一遍,一定要做,基本上考試的都會(huì)在練習(xí)當(dāng)中。

1)字符串的 strlen() 和 strcat() 和strcmp() 和strcpy()的使用方法一定要記住。他們的參數(shù)都是地址。其中strcat() 和strcmp()有兩個(gè)參數(shù)。

2)strlen 和 sizeof的區(qū)別也是考試的重點(diǎn);

3)define f(x)(x*x) 和 define f(x) x*x 之間的差別。一定要好好的注意這寫容易錯(cuò)的地方,替換的時(shí)候有括號(hào)和沒(méi)有括號(hào)是很大的區(qū)別。

4)int *p;

p = (int *)malloc(4);

p = (int *)malloc(sizeof(int));以上兩個(gè)等價(jià)

當(dāng)心填空題目,malloc的返回類型是 void *

6)函數(shù)的遞歸調(diào)用一定要記得有結(jié)束的條件,并且要會(huì)算簡(jiǎn)單的遞歸題目。要會(huì)作遞歸的題目

7)結(jié)構(gòu)體和共用體以及鏈表要掌握最簡(jiǎn)單的。typedef考的很多,而且一定要知道如何引用結(jié)構(gòu)體中的各個(gè)變量,鏈表中如何填加和刪除節(jié)點(diǎn),以及何如構(gòu)成一個(gè)簡(jiǎn)單的鏈表,一定記住鏈表中的節(jié)點(diǎn)是有兩個(gè)域,一個(gè)放數(shù)值,一個(gè)放指針。

8)函數(shù)指針的用法(*f)()記住一個(gè)例子:

      int add(int x, int y)

{....}

main()

{ int (*f)();

f=add;

}

賦值之后:合法的調(diào)用形式為1、add(2,3);

2、f(2,3);

3、(*f)(2,3)

9)兩種重要的數(shù)組長(zhǎng)度:

char a[]={‘a(chǎn)’,’b’,’c’};  數(shù)組長(zhǎng)度為3,字符串長(zhǎng)度不定。sizeof(a)為3。

char a[5]={ ‘a(chǎn)’,’b’,’c’}  數(shù)組長(zhǎng)度為5,字符串長(zhǎng)度3。sizeof(a)為5。

10)scanf 和 gets的數(shù)據(jù):

如果輸入的是 good good study!

那么scanf(“%s”,a); 只會(huì)接收 good. 考點(diǎn):不可以接收空格。

gets(a); 會(huì)接收 good good study! 考點(diǎn):可以接收空格。

11)共用體的考查:

union TT

{ int a;

char ch[2];}

考點(diǎn)一: sizeof (struct TT) = 4;

12)“文件包含”的考查點(diǎn):

    no1.c no2.c

#include”no2.c”

main()

{ add(29 , 33);

…….

}

int add(int a,int b)

{

return a+b;

}


這里一個(gè)C語(yǔ)言程序是有兩個(gè)文件組成,分別是no1.c, no2.c。那么no1.c中最開始有個(gè)#include”no2.c”他表示把第二個(gè)文件的內(nèi)容給包含過(guò)來(lái),那么no1.c中調(diào)用add()函數(shù)的時(shí)候就可以了把數(shù)值傳到no2.c中的被調(diào)用函數(shù)add()了。

一個(gè)文件必須要有main函數(shù)?!∵@句話錯(cuò)了?!±纾簄o2.c就沒(méi)有。

頭文件一定是以.h結(jié)束的。 這句話錯(cuò)了。例如:no1.c中就是#include”no2.c”以.c結(jié)尾的。

13)指針迷惑的考點(diǎn):

char ch[]=”iamhandsome”;

char *p=ch;

問(wèn)你 *(p+2) 和 *p+2的結(jié)果是多少?

‘m’ ‘k’ 結(jié)果是這兩個(gè),想不通的同學(xué)請(qǐng)作死的想!想通為止!

14)數(shù)組中放數(shù)組一定要看懂:

int a[8]={1,2,3,4,4,3,2,2};

int b[5]={0};

b[a[3]]++ 這個(gè)寫法要看懂,結(jié)果要知道是什么?b[4]++,本身是0,運(yùn)行完后,b[4]為1了。

15)字符串的賦值

C語(yǔ)言中沒(méi)有字符串變量,所以用數(shù)組和指針存放字符串:

1、char ch[10]={“abcdefgh”}; 對(duì)

2、char ch[10]=“abcdefgh”; 對(duì)

3、char ch[10]={‘a(chǎn)’,’b’,’c’,’d’,’e’,’f’,’g’,’h’}; 對(duì)

4、char *p=“abcdefgh”; 對(duì)

5、char *p; 對(duì)

p=“abcdefgh”;

6、char ch[10]; 錯(cuò)了!數(shù)組名不可以賦值!

ch=“abcdefgh”;

7、char *p={“abcdefgh”}; 錯(cuò)了!不能夠出現(xiàn)大括號(hào)!

16)字符串賦值的函數(shù)背誦:一定要背誦,當(dāng)心筆試填空題目。

把s指針中的字符串復(fù)制到t指針中的方法

1、while( (*t=*s)!=null ){s++;t++;} 完整版本

2、while( *t=*s ){s++;t++;} 簡(jiǎn)單版本

3、while( *t++=*s++); 高級(jí)版本

17)typedef 是取別名,不會(huì)產(chǎn)生新的類型,他同時(shí)也是關(guān)鍵字

考點(diǎn)一:typedef int qq 那么 int x 就可以寫成 qq x

考點(diǎn)二:typedef int *qq 那么 int *x就可以寫成 qq x

18)static 考點(diǎn)是一定會(huì)考的!復(fù)習(xí)相關(guān)的習(xí)題。

static int x;默認(rèn)值為0。

int x:默認(rèn)值為不定值。

19)函數(shù)的遞歸調(diào)用一定會(huì)考!至少是2分。


    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多

    欧洲一区二区三区自拍天堂| 久久中文字幕中文字幕中文| 免费在线观看激情小视频| 日本三区不卡高清更新二区| 国产又粗又猛又爽色噜噜| 熟妇久久人妻中文字幕| 激情国产白嫩美女在线观看| 国产一区二区三中文字幕| 日韩av生活片一区二区三区| 亚洲欧美国产网爆精品| 亚洲妇女黄色三级视频| 黄色国产一区二区三区| 高清不卡视频在线观看| 美女激情免费在线观看| 成人精品一区二区三区综合| 国产又粗又猛又大爽又黄同志 | 亚洲一区二区三区有码| 中文字幕在线区中文色| 久久精品亚洲精品国产欧美| 亚洲日本久久国产精品久久| 国产午夜在线精品视频| 午夜亚洲精品理论片在线观看| 欧美日韩亚洲国产综合网| 欧美亚洲三级视频在线观看| 国产专区亚洲专区久久| 黄色国产自拍在线观看| 免费大片黄在线观看日本| 亚洲国产av精品一区二区| 一区二区日韩欧美精品| 国产精品免费视频专区| 亚洲综合天堂一二三区| 午夜福利视频偷拍91| 成人午夜爽爽爽免费视频| 中文人妻精品一区二区三区四区| 国产欧美韩日一区二区三区| 国内尹人香蕉综合在线| 丰满人妻一二三区av| 免费在线观看欧美喷水黄片| 中文字幕精品一区二区三| 国产高清一区二区不卡| 蜜桃av人妻精品一区二区三区 |