指向指針的指針變量_第1頁
指向指針的指針變量_第2頁
指向指針的指針變量_第3頁
全文預覽已結束

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、一個指針變量可以指向整型變量、實型變量、字符類型變量,當然也可以指向指針類型變量。當這種指針變量用于指向指針類型變量時,我們稱之為指向指針的指針變量,這話可能會感到有些繞口,但你想到一個指針變量的地址就是指向該變量的指針時;這種雙重指針的含義就容易理解了。下面用一些圖來描述這種雙重指針,見圖6-13。在圖中,整型變量i的地址是&i,將其傳遞給指針變量p,則p指向i;實型變量j的地址是&j,將其傳遞給指針變量p,則p指向j;字符型變量ch的地址是&ch,將其傳遞給指針變量p,則p指向ch;整型變量x的地址是&x,將其傳遞給指針變量p2,則p2指向x,p2是指針變量

2、,同時,將p2的地址&p2傳遞給p1,則p1指向p2。這里的p1就是我們談到的指向指針變量的指針變量,即指針的指針。指向指針的指針變量定義如下:類型標識符*指針變量名例如:float*ptr;其含義為定義一個指針變量ptr,它指向另一個指針變量(該指針變量又指向一個實型變量)。由于指針運算符“*”是自右至左結合,所以上述定義相當于:float*(*ptr);下面看一下指向指針變量的指針變量怎樣正確引用。例6-27用指向指針的指針變量訪問一維和二維數(shù)組。#include#includemain()int a10,b34,*p1,*p2,*p3,i,j;/是*p指3向指針的指針變量*/fo

3、r(i=0;i<10;i+)scanf("%d",&ai);/*一維數(shù)組的輸入*/for(i=0;i<3;i+)for(j=0;j<4;j+)scanf("%d",&bij);/*二維數(shù)組輸入*/for(p1=a,p3=&p1,i=0;i<10;i+)printf("M",*(*p3+i);/*用指向指針的指針變量輸出一維數(shù)組*/printf("n");來源: for(p1=a;p1-a<10;p1+)/*用指向指針的指針變量輸出一維數(shù)組*/p3=&p1

4、;printf("M",*p3);printf("n");for(i=0;i<3;i+)/*用指向指針的指針變量輸出二維數(shù)組*/p2=bi;p3=&p2;for(j=0;j<4;j+)printf("M",*(*p3+j);printf("n");for(i=0;i<3;i+)/*用指向指針的指針變量輸出二維數(shù)組*/p2=bi;for(p2=bi;p2-bi<4;p2+)p3=&p2;printf("M",*p3);printf("n"

5、);程序的存儲示意如圖6-14所示,對一維數(shù)組a來說,若把數(shù)組的首地址即數(shù)組名賦給指針變量p1,p1就指向數(shù)組a,數(shù)組的各元素用p1表示為,*(p1+i),也可以簡化為*p1+i表示。同樣,對二維數(shù)組b來說,bi表示第i行首地址,將其傳遞給指針變量p2,使其指向該行。該行的元素用p2表示為*(p2+i)。若作p3=&p2,則表示p3指向p2,用p3表示的二維數(shù)組第i行元素為:*(*p3+i)。這與程序中的表示完全相同。運行程序:例6-28利用指向指針的指針變量對二維字符數(shù)組的訪問。#include#includemain()int i;staticcharc16="clang

6、uage","fox","computer","homepage"/*二維字符數(shù)組*/static char *cp=c0,c1,c2,c3;指/*針數(shù)組*/static char *cpp;/*指向字符指針的指針變量*/cpp=cp;/*將指針數(shù)組的首地址傳遞給指向字符指針的指針變量*/for(i=0;i<4;i+)/*按行輸出字符串*/printf("%sn",*cpp+);printf("-n");for(i=0;i<4;i+)/*按行輸出字符串*/cpp=&cpi;printf(&qu

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論