c語(yǔ)言指針與數(shù)組

c語(yǔ)言指針與數(shù)組

ID:36291210

大小:576.00 KB

頁(yè)數(shù):64頁(yè)

時(shí)間:2019-05-08

c語(yǔ)言指針與數(shù)組_第1頁(yè)
c語(yǔ)言指針與數(shù)組_第2頁(yè)
c語(yǔ)言指針與數(shù)組_第3頁(yè)
c語(yǔ)言指針與數(shù)組_第4頁(yè)
c語(yǔ)言指針與數(shù)組_第5頁(yè)
資源描述:

《c語(yǔ)言指針與數(shù)組》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫(kù)。

1、第7部分 指針、指針與數(shù)組編程步驟:分析?程序框架(粗算法)?細(xì)算法?程序?調(diào)試本講內(nèi)容和目標(biāo)要求正確理解指針的概念理解指針作函數(shù)參數(shù)時(shí),函數(shù)的調(diào)用過程掌握指針與一維數(shù)組、二維數(shù)組的關(guān)系掌握與動(dòng)態(tài)內(nèi)存分配相關(guān)的三個(gè)庫(kù)函數(shù),并了解動(dòng)態(tài)數(shù)組的用法至少能夠讀懂指針相關(guān)的程序,掌握指針在編程中的作用2新的概念:指針(Pointer)指針也是一種數(shù)據(jù)類型一種特殊的數(shù)據(jù)類型,這種類型存儲(chǔ)的是地址C/c++的特色有些復(fù)雜但很實(shí)用指針變量與指針常量指針變量專門存放地址數(shù)據(jù)的變量指針常量指一個(gè)固定的地址,例如:數(shù)組名3兩種尋址方式如

2、何讀寫內(nèi)存中的數(shù)據(jù)?通過變量的地址訪問變量所在的存儲(chǔ)單元兩種尋址方式直接(尋址)引用直接按變量地址來(lái)存取變量?jī)?nèi)容的引用方式間接(尋址)引用通過指針變量來(lái)間接存取它所指向的變量的引用方式房間1東西房間2房間1的鑰匙直接尋址間接尋址4間接尋址訪問:inti;int*pi;pi=&i;*pi=3;例1:直接尋址與間接尋址的表示直接尋址訪問:inti;i=3;20000┇變量i┇3010變量pi地址數(shù)據(jù)變量名如果能直接尋址那當(dāng)然就不用間接尋址了,但有時(shí),只能用間接尋址的方法解決問題③數(shù)據(jù)類型:int*(指向整型變量的指針)

3、變量名稱:pi變量的初值:&i含義:向系統(tǒng)申請(qǐng)一個(gè)動(dòng)態(tài)區(qū)的內(nèi)存空間,用來(lái)存儲(chǔ)整型指針變量pi的初值&i,即將pi指向了變量i。通過*pi這種形式,實(shí)現(xiàn)對(duì)變量i的間接引用。①②200035為什么引入指針的概念指針有如下好處:為函數(shù)提供修改變量值的手段為C的動(dòng)態(tài)內(nèi)存分配系統(tǒng)提供支持可以改善某些子程序的效率為動(dòng)態(tài)數(shù)據(jù)結(jié)構(gòu)(如例鏈表、隊(duì)列、二叉樹等)提供支持6inti,*p;p=&i;*p=100;inti,*p=&i;floatj,*q=&j;p=q;inti;float*p;p=&i;int*p;p=100;判斷對(duì)錯(cuò)!

4、必須進(jìn)行賦值才能引用!否則p指向了哪呢?一個(gè)指針變量不能指向與其類型不同的變量!float又稱變量P的基類型應(yīng)在類型相同的指針變量之間賦值int*p;scanf(“%p”,&p);*p=100;指針變量只存放地址!int*p;*p=100;對(duì)指針變量賦值只能通過&求得!7例2:讀程序#includevoidmain(){inta=5,b=10;int*pa=&a,*pb=&b;*pb=-1;printf(“b=%d”,*pb);pa=pb;printf(“*pa=%d,*pb=%d”,*pa,

5、*pb);}讀程序的關(guān)鍵:指針變量指向哪兒?所指向的變量里存儲(chǔ)的數(shù)據(jù)是多少?更改的是指針還是指針?biāo)赶虻淖兞浚?a&bpapb510ab-18指針變量與其它類型變量的對(duì)比共性在內(nèi)存中占據(jù)一定大小的存儲(chǔ)單元先定義,再使用指針變量的特殊性指針變量只能存放地址,而不能存放數(shù)據(jù)必須初始化后才能使用,否則指向不確定的存儲(chǔ)單元只能指向同一基類型的變量,否則warning.可參與的運(yùn)算:加、減、關(guān)系、賦值9主調(diào)函數(shù)被調(diào)函數(shù)voidmain(){inta,b;a=5;b=9;Swap(a,b);printf("a=%d,b=%d"

6、,a,b);}voidSwap(intx,inty){inttemp;temp=x;x=y;y=temp;}55ab實(shí)參形參99xyab傳數(shù)值調(diào)用xy5temp95因?yàn)樵诰植孔兞康淖饔糜蛲鉄o(wú)法直接引用,所以無(wú)法交換成功。如何交換作用域外兩個(gè)變量的值?(例3)間接引用!10主調(diào)函數(shù)被調(diào)函數(shù)voidmain(){inta,b;a=5;b=9;Swap(&a,&b);printf("a=%d,b=%d",a,b);}voidSwap(int*pa,int*pb){inttemp;temp=*pa;*pa=*pb;*pb=

7、temp;}&a實(shí)參形參&bxyab傳地址調(diào)用xy5temp5ab995地址值指針的好處之一:通過間接引用改變了其它作用域內(nèi)變量的值。當(dāng)計(jì)算結(jié)果不只一個(gè)時(shí),可以用這種方法,實(shí)現(xiàn)數(shù)據(jù)的“返回”。11習(xí)題7.1下面的函數(shù)用于計(jì)算兩個(gè)整數(shù)之和,并通過指針形參z得到x和y相加后的結(jié)果。voidAdd(intx,inty,z){=x+y;}int**z12習(xí)題7.2函數(shù)功能為________voidExchange(int*p1,int*p2){intp;p=*p1;*p1=*p2;*p2=p;}A)交換*p1和*p2的值B

8、)正確,但無(wú)法改變*p1和*p2的值C)交換*p1和*p2的地址D)可能造成系統(tǒng)故障13小結(jié)1指針的基礎(chǔ)知識(shí)尋址方式指針的概念、定義、賦值、間接引用14例4讀程序#includevoidmain(){inta[]={2,4,6,8,10};inty=0,i,*p;p=&a[0];for(i=0;i<5;i++)y+=*(p+i);print

當(dāng)前文檔最多預(yù)覽五頁(yè),下載文檔查看全文

此文檔下載收益歸作者所有

當(dāng)前文檔最多預(yù)覽五頁(yè),下載文檔查看全文
溫馨提示:
1. 部分包含數(shù)學(xué)公式或PPT動(dòng)畫的文件,查看預(yù)覽時(shí)可能會(huì)顯示錯(cuò)亂或異常,文件下載后無(wú)此問題,請(qǐng)放心下載。
2. 本文檔由用戶上傳,版權(quán)歸屬用戶,天天文庫(kù)負(fù)責(zé)整理代發(fā)布。如果您對(duì)本文檔版權(quán)有爭(zhēng)議請(qǐng)及時(shí)聯(lián)系客服。
3. 下載前請(qǐng)仔細(xì)閱讀文檔內(nèi)容,確認(rèn)文檔內(nèi)容符合您的需求后進(jìn)行下載,若出現(xiàn)內(nèi)容與標(biāo)題不符可向本站投訴處理。
4. 下載文檔時(shí)可能由于網(wǎng)絡(luò)波動(dòng)等原因無(wú)法下載或下載錯(cuò)誤,付費(fèi)完成后未能成功下載的用戶請(qǐng)聯(lián)系客服處理。