C語言詳細(xì)講解指針數(shù)組的用法_第1頁
C語言詳細(xì)講解指針數(shù)組的用法_第2頁
C語言詳細(xì)講解指針數(shù)組的用法_第3頁
C語言詳細(xì)講解指針數(shù)組的用法_第4頁
C語言詳細(xì)講解指針數(shù)組的用法_第5頁
全文預(yù)覽已結(jié)束

下載本文檔

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

文檔簡介

第C語言詳細(xì)講解指針數(shù)組的用法目錄1.指針數(shù)組定義方法2.指針的指針(二級指針)3.字符串和指針4.數(shù)組指針定義方法數(shù)組指針的用法

1.指針數(shù)組定義方法

格式:

類型說明符*數(shù)組名[元素個數(shù)]

int*p[10];//定義了一個整型指針數(shù)組p,有10個元素,都是int*類型的變量

指針數(shù)組的分類:同指針類型的分類,見上一篇

大多數(shù)情況下,指針數(shù)組都用來保存多個字符串。

#includestdio.h

intmain()

char*name[5]={"Hello",

"Pig",

"Pk",

"Welcome",

"DJANGo"};

inti;

for(i=0;ii++)

printf("%s\n",name[i]);

return0;

2.指針的指針(二級指針)

指針的指針,即指針的地址

intmain()

inta=100;

//定義一個一級指針,用于保存變量的地址

int*p=

//定義一個二級指針,用于保存一級指針的地址

int**q=

printf("a=%d%d%d\n",a,*p,**q);

printf("a=%p%p%p\n",a,p,*q);//打印a的地址

return0;

}

3.字符串和指針

字符串的概念:以\0結(jié)尾的若干字符的集合

字符串的存儲形式:數(shù)組,字符串指針,堆

(1)charstring[100]=ILOVEC定義了一個字符數(shù)組string用來存放字符串

(2)char*str=ILOVEC定義了一個指針變量str,只能存放字符地址編號,所以說ILOVEC這個字符串中的字符不能存放在str指針變量中。str只是存放了字符I的地址編號,ILOVEC存放在文字常量區(qū)

(3)charstr=(char)malloc(10*sizeof(char));動態(tài)申請了10個字節(jié)的存儲空間,首地址給str賦值。strcpy(str,ILOVEC!);將字符串拷貝到str指向的內(nèi)存里?!秙trcpy()函數(shù)詳解》

用的最多的是(1)和(3)

總結(jié):

字符數(shù)組:在內(nèi)存(棧、靜態(tài)全局區(qū))中開辟了一段空間存放字符串

字符串指針:在文字常量區(qū)開辟了一段空間存放字符串,將字符串的首地址賦給str

堆:使用malloc函數(shù)在堆區(qū)申請空間,將字符串拷貝到堆區(qū)

4.數(shù)組指針

本身是一個指針,指向一個數(shù)組,加1跳一個數(shù)組,即指向下一個數(shù)組。

數(shù)組指針的作用就是可以保存二維數(shù)組的首地址。

定義方法

格式:

指向的數(shù)組的類型(*指針變量名)[指向的數(shù)組的元素個數(shù)]

int(*p)[5];//定義了一個數(shù)組指針變量p,p指向的是整型的有5個元素的數(shù)組

p+1往下指5個整型,跳過一個有5個整型元素的數(shù)組。

#includestdio.h

//定義數(shù)組指針

voidtest1()

inta[3][5];//定義一個3行5列的數(shù)組

int(*p)[5];//定義了一個數(shù)組指針變量p,p+1跳一個有5個元素的整型數(shù)組

printf("a=%p\n",a);//第0行的行地址

printf("a+1=%p\n",a+1);//第1行的行地址,a和a+1差20個字節(jié)

p=a;

printf("p=%p\n",p);

printf("p+1=%p\n",p+1);

return;

intmain()

test1();

return0;

}

數(shù)組指針的用法

#includestdio.h

//數(shù)組指針的用法:可以將二維數(shù)組的首地址傳到另一個函數(shù)里面,此時函數(shù)的形參需要定義為數(shù)組指針

voidfunc(int(*p)[5],intx,inty)

p[x][y]=101;

voidtest2()

inti,j;

inta[3][5];

func(a,0,1);

for(i=0;ii++)

f

溫馨提示

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

最新文檔

評論

0/150

提交評論