(6.38)-第37課(8.6節(jié)-指針數(shù)組與多級指針)_第1頁
(6.38)-第37課(8.6節(jié)-指針數(shù)組與多級指針)_第2頁
(6.38)-第37課(8.6節(jié)-指針數(shù)組與多級指針)_第3頁
(6.38)-第37課(8.6節(jié)-指針數(shù)組與多級指針)_第4頁
(6.38)-第37課(8.6節(jié)-指針數(shù)組與多級指針)_第5頁
已閱讀5頁,還剩7頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

指針數(shù)組與多級指針指針的使用指針數(shù)組概念數(shù)組的所有元素都是指針類型數(shù)據(jù)(指針變量)定義形式類型名*數(shù)組名[元素個數(shù)];例如char*name[10];具體應(yīng)用一般用于處理一組字符串數(shù)據(jù)指針數(shù)組例char*name[]={"Tom","Mike","Mary","Peter"};name[0]name[1]name[2]name[3]Tom\0Mike\0Mary\0Peter\0輸出每個字符串:for(i=0;i<4;i++)puts(name[i]);【例1:】將若干字符串按字母順序(由小到大)輸出解題思路定義一個指針數(shù)組name,用各字符串對它進行初始化,即把各字符串中第1個字符的地址賦給指針數(shù)組的各元素然后用選擇法排序,但不是移動字符串,而是改變指針數(shù)組的各元素的指向程序?qū)崿F(xiàn)#include<stdio.h>#include<string.h>voidmain(){voidsort(char*name[],intn);

voidprint(char*name[],intn);char*name[]={"Followme","BASIC","GreatWall","FORTRAN","Computerdesign"};intn=5;

sort(name,n);//調(diào)用sort函數(shù),對字符串排序

print(name,n);//調(diào)用print函數(shù),輸出字符串}voidsort(char*name[],intn){char*temp;inti,j,k;for(i=0;i<n-1;i++){k=i;for(j=i+1;j<n;j++)if(strcmp(name[k],name[j])>0)k=j;if(k!=i){temp=name[i];name[i]=name[k];name[k]=temp;}}}voidprint(char*name[],intn){inti;for(i=0;i<n;i++)printf("%s\n",name[i];}排序后排序前指針數(shù)組與數(shù)組指針的比較int*p[3];①表明p是數(shù)組②表明p中的單元都是指針③表明p中的單元都是int型的指針指針數(shù)組

int(*p)[3];①表明p是指針變量②表明p指向的是長度為3的數(shù)組③表明p指向的是int型數(shù)組數(shù)組指針指針數(shù)組二維數(shù)組指針變量定義int*p[20];int(*p)[20];變量性質(zhì)p是數(shù)組名,不是指針變量,不可對p賦值P是指針變量,不是數(shù)組名,可對p賦值指向指針的指針---多級指針一級指針:指針變量中存放目標變量的地址

int*p;

inti=3;p=&i;*p=5;例&i3P(指針變量)i(整型變量)一級指針單級間接尋址二級指針:指針變量中存放一級指針變量的地址

int**p1;

int*p2;inti=3;p2=&i;p1=&p2;**p1=5;例p1&p2&i3P2(指針變量)i(整型變量)二級指針一級指針目標變量二級間接尋址定義形式:[存儲類型]數(shù)據(jù)類型**指針變量名;指針本身的存儲類型最終目標變量的數(shù)據(jù)類型如果:char*name[]={"Followme"……};

char**p;p=name+2;

則:printf(“%s\n”,*p);輸出:GreatWallname[0]name[1]name[2]name[3]name[4]nameGreatWallFORTRANComputerFollowmeBASICnamep說明一級指針變量只能取得普通變量的地址,二級指針變量只能取得一級指針變量的地址,三級、四級指針變量以此類推……即:一個n級的指針變量只允許指向一個n-1級的指針變量單元二級指針變量主要用于處理多個字符串【例2:】用二級指針變量處理字符串#include<stdio.h>voidmain(){char*name[]={"Followme","BASIC","GreatWall","FORTRAN","Computerdesign"};char**p;inti;for(i=0;i<5;i++){p=name+i;printf(

溫馨提示

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

評論

0/150

提交評論