指針簡(jiǎn)單應(yīng)用_第1頁(yè)
指針簡(jiǎn)單應(yīng)用_第2頁(yè)
指針簡(jiǎn)單應(yīng)用_第3頁(yè)
指針簡(jiǎn)單應(yīng)用_第4頁(yè)
指針簡(jiǎn)單應(yīng)用_第5頁(yè)
已閱讀5頁(yè),還剩17頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、 指指 針針 歡迎各位領(lǐng)導(dǎo)和同仁指導(dǎo)歡迎各位領(lǐng)導(dǎo)和同仁指導(dǎo)湖南軟件學(xué)院 授課老師:肖偉(1)內(nèi)存的概念)內(nèi)存的概念 內(nèi)存內(nèi)存:就是內(nèi)部存儲(chǔ)器,是由存儲(chǔ)單元:就是內(nèi)部存儲(chǔ)器,是由存儲(chǔ)單元組成的。組成的。復(fù)習(xí)復(fù)習(xí)存儲(chǔ)單元存儲(chǔ)單元線性連續(xù)線性連續(xù)存儲(chǔ)單元的最小存儲(chǔ)單元的最小單位是字節(jié)單位是字節(jié)(2)地址的概念)地址的概念地址地址:為了訪問內(nèi)存中的某個(gè)存儲(chǔ)單元,:為了訪問內(nèi)存中的某個(gè)存儲(chǔ)單元,我們要為它編號(hào),這種編號(hào)稱為內(nèi)存地我們要為它編號(hào),這種編號(hào)稱為內(nèi)存地址。通過地址我們就能夠訪問該地址所址。通過地址我們就能夠訪問該地址所標(biāo)識(shí)的存儲(chǔ)單元。標(biāo)識(shí)的存儲(chǔ)單元。(3)變量的地址變量的地址:變量在內(nèi)存中總占

2、用幾:變量在內(nèi)存中總占用幾個(gè)連續(xù)的字節(jié),開始字節(jié)的地址,就是變個(gè)連續(xù)的字節(jié),開始字節(jié)的地址,就是變量的地址。量的地址。20072007指針的基本概念指針的基本概念新授u指針指針:一個(gè)變量的地址稱為該變量的指針。:一個(gè)變量的地址稱為該變量的指針。u指針變量:指針變量:若一個(gè)變量專用于若一個(gè)變量專用于存放另一個(gè)變量存放另一個(gè)變量的地址(指針),的地址(指針),則稱變量為指針變量。則稱變量為指針變量。 若指針變量若指針變量p的值等于變量的值等于變量x的地址的地址, 則說指針變則說指針變量量p指向變量指向變量x。1000351000pxx的值p的值X的內(nèi)存地址u指針的對(duì)象指針的對(duì)象:當(dāng)把變量的地址存入

3、指針變量后,我們就可以說這個(gè)指針指向了該變量。 總結(jié)總結(jié)指針的定義與賦值指針的定義與賦值類型說明符類型說明符 * *指針變量名指針變量名 定義指針的一般形式:定義指針的一般形式:如:如:int *p1; float *p2;*指示其后的變量是指針類型的指針變量p1只能指向整型變量指針變量p2只能指向整型變量指針變量指針變量本身是什本身是什么類型的么類型的呢?呢?指針變量本身是整型的 指針變量的初始化指針變量的初始化如:如:int i,*pi=&i;類型說明符類型說明符 * *指針變量名指針變量名& &變量名變量名&符號(hào)不能掉符號(hào)不能掉指針變量中只能指針變量中只能

4、存放地址存放地址& & 取地址運(yùn)算符取地址運(yùn)算符* * 指針運(yùn)算符指針運(yùn)算符int *pa,a;pa&a;*pa12;取變量取變量a的首地址的首地址把把12賦給指針變量賦給指針變量pa所指的內(nèi)存單元所指的內(nèi)存單元pa&a;與與*pa&a;的區(qū)別的區(qū)別?例例1、編寫一個(gè)程序,驗(yàn)證指針變量、編寫一個(gè)程序,驗(yàn)證指針變量p里存放的確里存放的確實(shí)是變量實(shí)是變量X的地址。的地址。#include stdio.hmain() int x,*p=&x; printf(the address of x=%un,&x); /*變量變量x的地址的地址*/ pr

5、intf(the value of x =%dn,x); /* 變量變量x的值的值*/ printf(the address of p=%un,&p); /* 指針指針p的地址的地址*/ printf(the value of p=%un,p); /*指針指針p的值的值*/指針的運(yùn)算指針的運(yùn)算(1)賦值賦值 =(2)取地址運(yùn)算取地址運(yùn)算 &(3)取內(nèi)容運(yùn)算取內(nèi)容運(yùn)算 * *若若pa=&a (將(將 a 的地址送指針變量的地址送指針變量pa), 則則&*pa &(*pa) &(a) & a*&a *(&a) *pa a (*

6、pa)+ a+*pa+ *(pa+)&與與*同級(jí)運(yùn)算,由右向左同級(jí)運(yùn)算,由右向左注意:此時(shí)pa不再指向aHave a rest!指針的使用指針的使用 定義i_pointer為指針變量,i_pointer=&i;如何訪問? 假設(shè)i,i_pointer在內(nèi)存中位置為內(nèi)存用戶數(shù)據(jù)區(qū).6.32000變量i變量j200020023010指針變量i_pointer32000變量變量i_pointer2000i例例1 將兩個(gè)數(shù)從大到小輸出。將兩個(gè)數(shù)從大到小輸出。swap(p1,p2)int *p1,*p2; int p; p=*p1; *p1=*p2; *p2=p; main( )int a

7、,b; int *pa, *pb; scanf(“%d,%d”,&a,&b); pa=&a; pb=&b; if(ab) swap(pa, pb); printf(“%d,%dn”,a,b); 執(zhí)行函數(shù)語(yǔ)句,p1、p2所指向的變量的值相互交換*p1*p2調(diào)用swap函數(shù)之前:pa &a 5 a &b pb 9 b &ap1 &bp2 5 &apa a 9 &bpb b開始調(diào)用swap函數(shù),實(shí)參pa、 pb分別向形式參數(shù)p1、p2傳遞數(shù)據(jù) &a 9 &apap1 a 5 &b &bpb

8、p2 b執(zhí)行函數(shù)語(yǔ)句,p1、p2所指向的變量的值相互交換pa &a 9 a &b 5 pb b函數(shù)調(diào)用結(jié)束后,p1、p2所占用的內(nèi)存單元被釋放作業(yè)作業(yè)1 1、預(yù)習(xí)實(shí)驗(yàn)報(bào)告十四、預(yù)習(xí)實(shí)驗(yàn)報(bào)告十四2 2、編程題:、編程題: 有有n n個(gè)人圍成一圈,順序排號(hào)。個(gè)人圍成一圈,順序排號(hào)。從第從第1 1個(gè)人開始報(bào)數(shù)(從個(gè)人開始報(bào)數(shù)(從1 1到到3 3報(bào)報(bào)數(shù)),凡報(bào)到數(shù)),凡報(bào)到3 3的人退出圈子,問的人退出圈子,問最后留下的是原來的第幾號(hào)的那最后留下的是原來的第幾號(hào)的那位。位。Bye!int *p1, *p2, a, array10;u p1=&a; 變量的地址。變量的地址。u p

9、2=array;數(shù)組的首地址。數(shù)組的首地址。u p2=&arrayi;數(shù)組第數(shù)組第i個(gè)元素的地址。個(gè)元素的地址。u p1=p2;一個(gè)指針變量值賦給另一一個(gè)指針變量值賦給另一個(gè)指針變量。個(gè)指針變量。設(shè)有變量說明 int a, b, *p, *q; p=&a; 把a(bǔ)的地址賦給p,即讓p指向a q=p; 讓q也指向a,現(xiàn)在p、q都指向a p=&b; 讓p指向b,現(xiàn)在q指向a,p指向b 其中&a表示 a 的地址值地址值設(shè)p是一個(gè)指針表達(dá)式,則:(1)若*p出現(xiàn)在賦值號(hào)左邊,表示給p所指變量賦值(2)若*p不出現(xiàn)在賦值號(hào)左邊,表示p所指變量的值若有變量說明:int a,

10、*p ; 則: p=&a; 讓p指向變量a *p=10; *p出現(xiàn)在賦值號(hào)左邊,等價(jià)于 a=10printf(“%d”, *p); *p不出現(xiàn)在賦值號(hào)左邊,打印p所指變量的值scanf(“%d”, &a); 給變量a輸入值scanf(“%d”, p); 給變量a輸入值*p+25 等價(jià)于a+25例例2、 編寫一程序,做如下變量說明:編寫一程序,做如下變量說明: int x=32,*p=&x; 驗(yàn)證驗(yàn)證*p與與x等價(jià)。等價(jià)。#include stdio.hmain( ) int x=32,*p=&x; printf(x=%dt*p=%dn,x,*p);程序運(yùn)行結(jié)果:程序運(yùn)行結(jié)果:x=32 *p=3

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論