c語言二級指針做函數(shù)參數(shù) 二級c語言指針常見題型

C語言 傳遞二級指針

void ChangeStrPo(char **p)改為 char** ChangeStrPo(),然后main里,ps=ChangeStrPo();

目前成都創(chuàng)新互聯(lián)已為千余家的企業(yè)提供了網(wǎng)站建設(shè)、域名、網(wǎng)頁空間、成都網(wǎng)站托管、企業(yè)網(wǎng)站設(shè)計、墾利網(wǎng)站維護等服務(wù),公司將堅持客戶導向、應(yīng)用為本的策略,正道將秉承"和諧、參與、激情"的文化,與客戶和合作伙伴齊心協(xié)力一起成長,共同發(fā)展。

說明,你原來的changestrpo,p是ps的副本,malloc后,p改變了值,但是ps并沒有改變。當傳遞指針的時候,可以通過*ps來改變指針所值的地址內(nèi)存放的值,但是是改變不了實參ps本身的值。

C語言中,為什么通過函數(shù)為指針變量分配內(nèi)存,形參一定要是二級指針?

我感覺沒有必要用二級指針,我們的目的主要是為了讓主函數(shù)中的指針的地址指向一個空內(nèi)存。我們完全可以通過傳遞這個指針的地址到子函數(shù)中,然后給這個指針的地址分配內(nèi)存就可以了。例如下面這個程序就是正確的。根本沒有必要使用到二級指針呀。

C語言中為什么函數(shù)形參中二級指針和一級指針指輸出的結(jié)果一樣

兄弟,那個不是一級指針,那是指針數(shù)組

指針數(shù)組作為函數(shù)形參時會自動轉(zhuǎn)換為指針的指針,也就是你說的二級指針

char **p=book;從這一行也能證明我說的,自動轉(zhuǎn)換

特別注意:它只會轉(zhuǎn)換數(shù)組的最內(nèi)層(我有點分不清內(nèi)外)

int arr[2][6];

int (*aa)[6] = arr;//對

//int *aa1[6] = arr;//錯

//int (*aa2)[2] = arr;//錯

//int (*aa3)[] = arr;//錯

//int *aa4 = arr;//錯

//int **aa5 = arr; //錯

C語言指針作為函數(shù)參數(shù),返回值為0

那你應(yīng)該用指針的指針才行,然后函數(shù)返回指針。

double?*a(double?**p)

{

*p=....?//修改指針所指向的地址

...

return?*p;?//返回指針p指向的地址

}

int?main()

{

double?*p=...?//初始化指針p

double?*q;???//用于接收改變的指針

...

q=a(p);???//將指針p的地址傳遞給a

...

return?0;

}

如果是用作dll的話,那么你應(yīng)該使用和相應(yīng)語言兼容的類型才行

網(wǎng)頁題目:c語言二級指針做函數(shù)參數(shù) 二級c語言指針常見題型
轉(zhuǎn)載來于:http://muchs.cn/article6/dojhpog.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供品牌網(wǎng)站建設(shè)、品牌網(wǎng)站設(shè)計、網(wǎng)站收錄、小程序開發(fā)、全網(wǎng)營銷推廣、企業(yè)建站

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

成都seo排名網(wǎng)站優(yōu)化