c語言指針與數組

c語言指針與數組

ID:36291210

大小:576.00 KB

頁數:64頁

時間:2019-05-08

c語言指針與數組_第1頁
c語言指針與數組_第2頁
c語言指針與數組_第3頁
c語言指針與數組_第4頁
c語言指針與數組_第5頁
資源描述:

《c語言指針與數組》由會員上傳分享,免費在線閱讀,更多相關內容在教育資源-天天文庫。

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

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

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

4、必須進行賦值才能引用!否則p指向了哪呢?一個指針變量不能指向與其類型不同的變量!float又稱變量P的基類型應在類型相同的指針變量之間賦值int*p;scanf(“%p”,&p);*p=100;指針變量只存放地址!int*p;*p=100;對指針變量賦值只能通過&求得!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);}讀程序的關鍵:指針變量指向哪兒?所指向的變量里存儲的數據是多少?更改的是指針還是指針所指向的變量?&a&bpapb510ab-18指針變量與其它類型變量的對比共性在內存中占據一定大小的存儲單元先定義,再使用指針變量的特殊性指針變量只能存放地址,而不能存放數據必須初始化后才能使用,否則指向不確定的存儲單元只能指向同一基類型的變量,否則warning.可參與的運算:加、減、關系、賦值9主調函數被調函數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實參形參99xyab傳數值調用xy5temp95因為在局部變量的作用域外無法直接引用,所以無法交換成功。如何交換作用域外兩個變量的值?(例3)間接引用!10主調函數被調函數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實參形參&bxyab傳地址調用xy5temp5ab995地址值指針的好處之一:通過間接引用改變了其它作用域內變量的值。當計算結果不只一個時,可以用這種方法,實現(xiàn)數據的“返回”。11習題7.1下面的函數用于計算兩個整數之和,并通過指針形參z得到x和y相加后的結果。voidAdd(intx,inty,z){=x+y;}int**z12習題7.2函數功能為________voidExchange(int*p1,int*p2){intp;p=*p1;*p1=*p2;*p2=p;}A)交換*p1和*p2的值B

8、)正確,但無法改變*p1和*p2的值C)交換*p1和*p2的地址D)可能造成系統(tǒng)故障13小結1指針的基礎知識尋址方式指針的概念、定義、賦值、間接引用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

當前文檔最多預覽五頁,下載文檔查看全文

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

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