指針和指針變量

指針和指針變量

ID:43978366

大小:360.00 KB

頁數(shù):61頁

時(shí)間:2019-10-17

指針和指針變量_第1頁
指針和指針變量_第2頁
指針和指針變量_第3頁
指針和指針變量_第4頁
指針和指針變量_第5頁
資源描述:

《指針和指針變量》由會員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在行業(yè)資料-天天文庫。

1、第七章指針7.1指針和指針變量7.2數(shù)組的指針和指向數(shù)組的指針變量7.3字符串的指針和指向字符串的指針變量7.4函數(shù)的指針和指向函數(shù)的指針變量7.5返回指針值的函數(shù)7.6指針數(shù)組和指向指針的指針[Return]7.1指針和指針變量概念內(nèi)存地址:內(nèi)存中存儲單元的編號計(jì)算機(jī)硬件系統(tǒng)的內(nèi)存儲器中,擁有大量的存儲單元,為了方便管理,必須為每一個(gè)存儲單元編號,這個(gè)編號就是存儲單元的“地址”。每個(gè)存儲單元都有一個(gè)惟一的地址注意:內(nèi)存單元的地址與內(nèi)存單元中的數(shù)據(jù)是兩個(gè)完全不同的概念變量地址;系統(tǒng)分配給變量的內(nèi)存單元的起始地址變量值的存取通過變量在內(nèi)存中的地址進(jìn)

2、行變量存取的方式:直接訪問:直接利用變量的地址進(jìn)行存取如:scanf(“%d”,&num)間接訪問:通過另一變量訪問該變量的值,即定義一種特殊的變量(稱為指針變量),用來存放其它變量的地址593000300030024000變量i變量j變量i_pointer指針與指針變量指針:即地址,一個(gè)變量的地址稱為該變量的指針指針變量:專門用于存放其它變量地址的變量,指針變量的值是指針,即變量num的地址指針與指針變量的區(qū)別:即變量值與變量的區(qū)別為表示指針變量和它指向的變量之間的關(guān)系,用指針運(yùn)算符“*”表示如:i=3;/*將3直接賦給變量i*/i_point

3、er=&i;/*使i_pointer指向i*/*i_pointer=3;/*將3賦給指針變量i_pointer指向的變量*/指針變量的定義指針變量的定義的一般形式:數(shù)據(jù)類型*標(biāo)識符;如:int*p;char*str;標(biāo)識符前面的*表示該變量為指針變量一個(gè)指針變量只能指向同一類型的變量,即只有同一類型變量的地址才能放到指向該類變量的指針變量中注意:此時(shí)的指針變量p、str并未指向某個(gè)具體的變量(稱指針是懸空的)。使用懸空指針很容易破壞系統(tǒng),導(dǎo)致系統(tǒng)癱瘓指針變量的引用&:取地址運(yùn)算符*:指針運(yùn)算符[例7.1.1]指針變量的定義與引用main() {i

4、nta,b;int*p1,*p2;/*定義指針變量*p1、*p2*/a=100;b=10;p1=&a;/*把變量a的地址賦給p1*/ p2=&b;/*把變量b的地址賦給p2*/printf(“%d,%d”,a,b);printf(“%d,%d”,*p1,*p2);}注:如果執(zhí)行了“p1=&a;”語句,則&*p1與&a相同指針變量的運(yùn)算賦值運(yùn)算inta=1,b,*p;p=&a;b=*p;算術(shù)運(yùn)算++、--p++/++P、P--/--P(*p)++a++*(p++)加、減整型數(shù)據(jù)p±n:將指針從當(dāng)前位置向前(+n)或回退(-n)n個(gè)數(shù)據(jù)單位,

5、而不是n個(gè)字節(jié)指向同一數(shù)組的不同元素的指針之間的減法p1-p2:兩指針之間的數(shù)據(jù)個(gè)數(shù)指針變量的比較運(yùn)算:地址之間、位置的前后關(guān)系,前者為小,后者為大指針變量的下標(biāo)運(yùn)算:p[i]*(p+i)p=1;×1199abp[例7.1.2]輸入兩個(gè)整數(shù),按從大到小順序輸出main(){inta,b,*p1,*p2,*p;scanf(“%d,%d”,&a,&b);p1=&a;p2=&b;if(a

6、n”,*p1,*p2);}運(yùn)行情況如下:5,9a=5,b=9max=9,min=5p&ap15a&bp29bp&bp15a&ap29b指針變量作函數(shù)參數(shù)指針變量,既可以作為函數(shù)的形參,也可以作函數(shù)的實(shí)參指針變量作實(shí)參時(shí),是將一個(gè)變量的地址傳送到另一個(gè)函數(shù)中注意:被調(diào)用函數(shù)不能改變實(shí)參指針變量的值,但可以改變實(shí)參指針變量所指向的變量的值[例7.1.3]輸入兩個(gè)整數(shù),按從大到小順序輸出swap(p1,p2)int*p1,*p2;{intp;p=*p1;*p1=*p2;*p2=p;}main(){inta,b,*m,*n;scanf(“%d,%d”,&

7、a,&b);m=&a;n=&b;if(a

8、,*n);}運(yùn)行情況如下:5,95,9ma&a5&bn9b(a)m&aa5&bp29b&ap1&bn(b)ma&a5&bn9b(d)m&

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

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

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