真正明白c語(yǔ)言二級(jí)指針!深刻感悟極致領(lǐng)悟_第1頁(yè)
真正明白c語(yǔ)言二級(jí)指針!深刻感悟極致領(lǐng)悟_第2頁(yè)
真正明白c語(yǔ)言二級(jí)指針!深刻感悟極致領(lǐng)悟_第3頁(yè)
真正明白c語(yǔ)言二級(jí)指針!深刻感悟極致領(lǐng)悟_第4頁(yè)
免費(fèi)預(yù)覽已結(jié)束,剩余1頁(yè)可下載查看

下載本文檔

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

文檔簡(jiǎn)介

真正明白c語(yǔ)言二級(jí)指針!深刻感悟,極致領(lǐng)悟

真正明白c語(yǔ)言二級(jí)指針!深刻感悟,極致領(lǐng)悟

指針是C語(yǔ)言的靈魂,我想對(duì)于一級(jí)指針大家應(yīng)該都很熟悉,也經(jīng)常用到:比方說(shuō)對(duì)于字符串的處理,函數(shù)參數(shù)的值,結(jié)果傳遞等,對(duì)于二級(jí)指針或者多級(jí)指針,我想理解起來(lái)也是比擬容易的,比方二級(jí)指針就是指向指針的指針.....n級(jí)指針就是....

p*p**p

----------

||->||->||

------||

||

----

但是可能大家比擬不容易理解的是,二級(jí)指針或者多級(jí)指針用在哪里呢?怎么使用呢?有沒(méi)有必要用呢?

現(xiàn)在我就談?wù)凜指針的比擬經(jīng)常用到的地方:

我們都知道C語(yǔ)言中函數(shù)傳遞參數(shù)都是傳遞"值"的,如下:

voidfun(void)

{

inttmp=0;

change(tmp);

printf("################tmp=%d/n");

return;

}

voidchange(inttmp_t)

{

tmp_t=1;

return;

}

這個(gè)時(shí)候fun()中打印出來(lái)的tmp值還是0,因?yàn)槲覀儌鬟f的是值,如果你想在函數(shù)change()中修改這個(gè)tmp的值能在fun()中生效的話,則就需要用指針來(lái)傳遞了如下:

voidfun(void)

{

inttmp=0;

change(&tmp);

printf("################tmp=%d/n");

return;

}

voidchange(int*tmp_t)

{

*tmp_t=1;

return;

}

這個(gè)時(shí)候fun()中打印出來(lái)的tmp值就是1了,因?yàn)槲覀兇藭r(shí)傳進(jìn)來(lái)的是tmp的地址,所以我們?cè)赾hange()中tmp_t就是tmp的地址了,而對(duì)于*tmp_t的操作其實(shí)就是對(duì)tmp的操作了。

到這里的時(shí)候我們可以試想一下,我們通過(guò)傳遞指針來(lái)到達(dá)修改一個(gè)值的目的,則當(dāng)你需要修改一個(gè)指針的時(shí)候呢,這個(gè)時(shí)候我們就需要指針的指針了,如下:

intfun(void)

{

int*buf;

intret;

ret=mem_init(&buf);

returnret;

}

intmem_init(int**buf_t)

{

*buf_t=malloc(100);

return1;

}

通過(guò)上面我們可以發(fā)現(xiàn),fun()函數(shù)通過(guò)調(diào)用men_init()函數(shù)來(lái)實(shí)現(xiàn)給buf分配內(nèi)存空間的目的。首先buf是我們定義的一個(gè)指針,&buf那么是指向buf的指針(二級(jí)指針),我們通過(guò)把&buf傳遞個(gè)men_init()函數(shù),則此時(shí)二級(jí)指針buf_t=&buf了,所以說(shuō)buf_t是指向buf的指針,則對(duì)于*buf_t的操作其實(shí)就是對(duì)buf的操作了,這樣fun()就可以通過(guò)men_init()來(lái)分配內(nèi)存了。

〔補(bǔ)充一點(diǎn):對(duì)于定義的int**buf_t中,二級(jí)指針buf_t=&buf,指向?yàn)閎uf(還是一個(gè)指針),一

溫馨提示

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

評(píng)論

0/150

提交評(píng)論