因為C語言中,參數(shù)的傳遞是數(shù)值傳遞方法,也就是說,在給函數(shù)傳遞參數(shù)時,使用的不是你傳遞的實參的內(nèi)存空間,而是重新分配內(nèi)存,將實參的數(shù)值復制到新內(nèi)存中,被調(diào)用的函數(shù)就是使用新分配的內(nèi)存,函數(shù)返回時,這些新內(nèi)存就會被釋放,而源內(nèi)存中的內(nèi)容沒有改變。

創(chuàng)新互聯(lián)專業(yè)為企業(yè)提供集美網(wǎng)站建設、集美做網(wǎng)站、集美網(wǎng)站設計、集美網(wǎng)站制作等企業(yè)網(wǎng)站建設、網(wǎng)頁設計與制作、集美企業(yè)網(wǎng)站模板建站服務,十余年集美做網(wǎng)站經(jīng)驗,不只是建網(wǎng)站,更提供有價值的思路和整體網(wǎng)絡服務。
要想通過調(diào)用函數(shù)改變實參的值,就需要使用指針或引用的技術(shù)。
用三維指針。
#include?stdio.h
#include?stdlib.h
void?creat2Arr(int?***dest1,?int?x,?int?y)
{
int?**dest;
dest?=?(int?**)malloc(sizeof(int)*x);
int?i=0;
for?(?;?i??x;i++)
{
dest[i]?=?(int?*)malloc(sizeof(int)*y);
int?j=0;
for?(;?j??y;j++)
{
dest[i][j]?=i+j;
}
}
printf("%d",dest[0][0]);
*dest1?=?dest;
}
void?free2Arr(int?**dest,?int?x)
{
int?i;
for?(i=0;?i??x;i++)
{
free(dest[i]);
dest[i]?=?NULL;
}
free(dest);
dest?=?NULL;
}
int?main(void)
{
int?**a=NULL;
creat2Arr(a,10,10);
printf("%d",a[0][0]);
free2Arr(a,10);
return?0;
}
a=search(number);
參數(shù)傳遞沒有問題 就是a要定義才能使用
而且
int search(char a[])如果是這樣定義的話 函數(shù)體里邊一定要有一個整形數(shù)的返回值才可以給變量a賦值
返回值是整形數(shù)的 不聲明應該也可以
除了樓下說的這個問題:for(;p!='\0';p++)
day傳不進去的原因是input函數(shù)中的str和p這些是局部變量,函數(shù)調(diào)用完之后就銷毀了,返回的p指向的內(nèi)存不能保證可用!
本文題目:c語言函數(shù)值無法傳遞 c++函數(shù)傳遞方式
文章鏈接:http://www.chinadenli.net/article4/dooedoe.html
成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供服務器托管、靜態(tài)網(wǎng)站、網(wǎng)站建設、網(wǎng)站設計公司、搜索引擎優(yōu)化、品牌網(wǎng)站設計
聲明:本網(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)