voidswap(intx,inty){inttemp;temp=x;x=y;y=temp;}voidma">
C語(yǔ)言 程序設(shè)計(jì) 第7章 指針.ppt

C語(yǔ)言 程序設(shè)計(jì) 第7章 指針.ppt

ID:50083245

大?。?26.50 KB

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

時(shí)間:2020-03-08

C語(yǔ)言 程序設(shè)計(jì) 第7章 指針.ppt_第1頁(yè)
C語(yǔ)言 程序設(shè)計(jì) 第7章 指針.ppt_第2頁(yè)
C語(yǔ)言 程序設(shè)計(jì) 第7章 指針.ppt_第3頁(yè)
C語(yǔ)言 程序設(shè)計(jì) 第7章 指針.ppt_第4頁(yè)
C語(yǔ)言 程序設(shè)計(jì) 第7章 指針.ppt_第5頁(yè)
資源描述:

《C語(yǔ)言 程序設(shè)計(jì) 第7章 指針.ppt》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫(kù)。

1、第7章指針【問(wèn)題7】閱讀下面程序,分析能否交換a和b中的內(nèi)容。如果不能,問(wèn)題出在哪里?應(yīng)該如何解決?#includevoidswap(intx,inty){inttemp;temp=x;x=y;y=temp;}voidmain(){inta=10,b=5;swap(a,b);printf("a=%d,b=%d",a,b);}函數(shù)采用按值傳遞方式,swap()函數(shù)中形參x、y交換,并不影響主函數(shù)中實(shí)參a和b的值。輸出的結(jié)果為:a=10,b=5shortinta=11;floatx=3.45;shortintb

2、;3.457.1指針和指針變量的概念1.地址與直接訪問(wèn)變量a的地址變量占有的存儲(chǔ)單元的起始地址就是該變量的地址。直接訪問(wèn):根據(jù)變量名直接訪問(wèn)變量存儲(chǔ)單元。整型變量b內(nèi)存地址1001H1201H1204H1004H1301H整型變量a實(shí)型變量x……1304H變量11指針,就是內(nèi)存單元的地址。一個(gè)變量的地址稱(chēng)為該變量的指針。變量的指針是個(gè)地址常量。變量的地址可以通過(guò)取地址運(yùn)算符&得到。2.指針的概念整型變量b內(nèi)存地址1001H1201H1204H1002H1301H整型變量a實(shí)型變量x113.45……1302H變量變量a的指針3.指

3、針變量與間接訪問(wèn)指針變量是用于存放變量地址的變量&a(1001H)11pa指針變量p指向變量a間接訪問(wèn):通過(guò)指針變量p訪問(wèn)變量a的存儲(chǔ)單元7.2指針變量的定義與引用7.2.1指針變量的定義類(lèi)型說(shuō)明符*指針變量名;inta,*p1;float*p2;char*p3;指針變量名不包括*指針變量所定義的類(lèi)型應(yīng)與所指向的變量類(lèi)型一致。遵循標(biāo)識(shí)符的命名規(guī)則。7.2.2指針變量的操作1.兩個(gè)運(yùn)算符(1)取地址運(yùn)算符(&)&變量名(2)指針運(yùn)算符(*)*指針變量名inta=5,*p1;p1=&a;*p1=8;將變量a的地址賦給指針變量p1。將

4、8賦給指針變量p1指向的變量a2.指針變量的賦值(1)在定義指針變量時(shí)進(jìn)行賦值inta;int*p=&a;(2)通過(guò)賦值語(yǔ)句進(jìn)行賦值inta,*p,*q;p=&a;q=p;給指針變量賦值時(shí),只能是地址類(lèi)型,而且兩邊的類(lèi)型一定要匹配。在給指針變量賦地址值時(shí),指針變量前不能加“*”號(hào)。3.指針變量的引用給指針變量賦值引用指針變量的值引用指針變量指向的變量的值inta,b,*p,*q;p=&a;q=p;b=*p;printf("%d",*p);給指針變量p賦值引用指針變量p的值引用指針變量p指向的變量a的值【例7.1】輸入任意兩個(gè)整數(shù)

5、,按先大后小的順序輸出(用指針實(shí)現(xiàn))。main(){inta,b,*p1,*p2,*q;scanf("%d,%d",&a,&b);p1=&a;p2=&b;if(*p1<*p2){q=p1;p1=p2;p2=q;}printf("a=%d,b=%d",a,b);printf("max=%d,min=%d",*p1,*p2);}運(yùn)行程序,輸入:11,33?輸出:a=11,b=33max=33,min=114.指針的運(yùn)算(1)指針的加減運(yùn)算當(dāng)指針變量p1已指向數(shù)組a中的一個(gè)元素時(shí),則p1+1指向該元素的下一個(gè)元素,p1-1

6、指向該元素的前一個(gè)元素。inta[10]={1,2,3,4,5,6,7,8,9,10},i,*p1,*p2;p1=a;p2=&a[9];則p1+4、p2-3、*(p1+4)、*(p2–3)、*p1、*p2分別表示什么?a[0]a[1]a[2]a[3]a[4]a[5]a[6]a[7]a[8]a[9]12345678910p1p1+4p2p2-3(2)指針的賦值運(yùn)算【例7.2】閱讀下列程序,分析指針的變化,寫(xiě)出運(yùn)行結(jié)果。main(){inta[10]={1,2,3,4,5,6,7,8,9,10},i,*p1,*p2;p1=a;p2=

7、&a[9];p1++;p2--;printf("%d%d",*p1,*p2);p1=p1+3;p1++;p2--;printf("%d%d",*p1,*p2);}運(yùn)行結(jié)果:2968p1指向a[0],p2指向a[9]p1指向a[1],p2指向a[8]p1指向a[4]p1指向a[5],p2指向a[7](3)兩個(gè)同類(lèi)型的指針相減如果指針變量p1和p2都指向同一數(shù)組,若執(zhí)行p2–p1,則實(shí)際上執(zhí)行的是:兩個(gè)地址的差值除以數(shù)組元素的長(zhǎng)度,即表示的是p2與p1之間相差的元素個(gè)數(shù)。如果指針變量p1和p2都指向同一數(shù)組,若p1所

8、指向的數(shù)組元素位于p2所指向的數(shù)組元素之前,則關(guān)系表達(dá)式p1

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

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

當(dāng)前文檔最多預(yù)覽五頁(yè),下載文檔查看全文
溫馨提示:
1. 部分包含數(shù)學(xué)公式或PPT動(dòng)畫(huà)的文件,查看預(yù)覽時(shí)可能會(huì)顯示錯(cuò)亂或異常,文件下載后無(wú)此問(wèn)題,請(qǐng)放心下載。
2. 本文檔由用戶(hù)上傳,版權(quán)歸屬用戶(hù),天天文庫(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)完成后未能成功下載的用戶(hù)請(qǐng)聯(lián)系客服處理。