c語(yǔ)言數(shù)組指針傳遞給函數(shù),c語(yǔ)言二維數(shù)組指針傳遞

C語(yǔ)言中 指針做函數(shù)參數(shù)傳遞二維數(shù)組

#include stdio.h

讓客戶滿意是我們工作的目標(biāo),不斷超越客戶的期望值來自于我們對(duì)這個(gè)行業(yè)的熱愛。我們立志把好的技術(shù)通過有效、簡(jiǎn)單的方式提供給客戶,將通過不懈努力成為客戶在信息化領(lǐng)域值得信任、有價(jià)值的長(zhǎng)期合作伙伴,公司提供的服務(wù)項(xiàng)目有:空間域名、虛擬主機(jī)、營(yíng)銷軟件、網(wǎng)站建設(shè)、峨山縣網(wǎng)站維護(hù)、網(wǎng)站推廣。

void fun(int (*p1)[3],int (*p2)[3]);

int main()

{

int p1[3][3]={{7,8,9},{4,5,6},{1,2,3}} ;

int p2[3][3] = {0};

int i = 0, j = 0;

fun(p1,p2);

for(i = 0;i 3;i++){

for(j = 0;j 3;j++){

printf("%d ",*(*(p2+i)+j));?

}

printf("\n");

}? ? ?

return 0;

}

void fun(int (*p1)[3],int (*p2)[3])

{

int i = 0,j = 0;

for(i = 0;i 3;i++){

for(j = 0;j 3;j++){

*(p2[j]+i) = *(p1[i]+j);

}

}

}

擴(kuò)展資料:

函數(shù)指針的聲明方法為:

返回值類型 ( *?指針變量名) ([形參列表]);

其中,“返回值類型”說明函數(shù)的返回類型,“(指針變量名 )”中的括號(hào)不能省,括號(hào)改變了運(yùn)算符的優(yōu)先級(jí)。若省略整體則成為一個(gè)函數(shù)說明,說明了一個(gè)返回的數(shù)據(jù)類型是指針的函數(shù),后面的“形參列表”表示指針變量指向的函數(shù)所帶的參數(shù)列表。例如:

int func(int x); /* 聲明一個(gè)函數(shù) */

int (*f) (int x); /* 聲明一個(gè)函數(shù)指針 */

f=func; /* 將func函數(shù)的首地址賦給指針f */

或者使用下面的方法將函數(shù)地址賦給函數(shù)指針:

f = func;

賦值時(shí)函數(shù)func不帶括號(hào),也不帶參數(shù),由于func代表函數(shù)的首地址,因此經(jīng)過賦值以后,指針f就指向函數(shù)func(x)的代碼的首地址。

參考資料:

百度百科-函數(shù)指針

C語(yǔ)言新手問題之用指針來將數(shù)組傳遞給函數(shù).

int (*ptr)[4]

ptr是一個(gè)指針,他指向的類型是一個(gè)長(zhǎng)為4的數(shù)組,數(shù)組的類型是int

簡(jiǎn)單的說,ptr是一個(gè)指向int[4]的指針

43行是把上面說的那種類型轉(zhuǎn)成int*類型

如果你要問為什么可以這么轉(zhuǎn),那其實(shí)C語(yǔ)言怎么轉(zhuǎn)都行,只要程序員自己知道自己在做什么。。

這里的話,因?yàn)閜tr是指向int[4]的,也就是說他是指向一個(gè)int[4]的第一個(gè)元素的,所以ptr存儲(chǔ)的是int[4]的第一個(gè)元素的地址,也就是一個(gè)int數(shù)據(jù)的地址,那當(dāng)然可以轉(zhuǎn)成int*,從邏輯上講也是沒問題的~

請(qǐng)問在C語(yǔ)言中,函數(shù)傳參時(shí)怎樣利用指針傳遞數(shù)組

數(shù)組名就是指針,例如:

#include stdio.h

void?pr(char *p)

{

printf(p);

}

void main(void)

{

char s[] = "abc";

pr(s);

}

擴(kuò)展資料:

注意事項(xiàng)

非數(shù)組類的聲明盡量以指針的方式進(jìn)行比較好。倘若一個(gè)指針指向的內(nèi)存并不是一個(gè)數(shù)組,那么采用數(shù)組名的聲明方式或許就會(huì)給人產(chǎn)生錯(cuò)誤的引導(dǎo)。類似的,如果指向的是一個(gè)數(shù)組區(qū)域,則會(huì)給人以更加豐富的信息。例如:

int main(int argc,char* argv[])

{

/* code here */

}

int main(int argc,char** argv)

{

/* code here */

}

兩種方式完全等價(jià),但是前面一種能夠更清晰地看出:這個(gè)參數(shù)是指向某個(gè)元素起始地址的指針,而后面的這種方式則不能夠直觀地看出這種含義。

c語(yǔ)言的數(shù)組怎么傳遞到函數(shù)里面

例:

#includestdio.h

void?fact(int?*p,?int?n)

{

for(i?=?0;?i??n;?++i)

{

printf("%d?",?p?+?i);

}

printf("\n");

p[3]?=?6;

}

int?main()

{

int?a[5]?=?{1,?2,?3,?4,?5};

fact(a,?5);

for(i?=?0;?i??5;?++i)

{

printf("%d?",?a[i]);

}

printf("\n");

return?0;

}

分享題目:c語(yǔ)言數(shù)組指針傳遞給函數(shù),c語(yǔ)言二維數(shù)組指針傳遞
文章源于:http://muchs.cn/article34/hcjcpe.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供虛擬主機(jī)、ChatGPT、微信小程序Google、標(biāo)簽優(yōu)化移動(dòng)網(wǎng)站建設(shè)

廣告

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

成都網(wǎng)站建設(shè)公司