首先函數(shù)返回一個(gè)指針類型即返回地址。
創(chuàng)新互聯(lián)建站主要從事成都網(wǎng)站建設(shè)、成都做網(wǎng)站、網(wǎng)頁(yè)設(shè)計(jì)、企業(yè)做網(wǎng)站、公司建網(wǎng)站等業(yè)務(wù)。立足成都服務(wù)南沙,十載網(wǎng)站建設(shè)經(jīng)驗(yàn),價(jià)格優(yōu)惠、服務(wù)專業(yè),歡迎來(lái)電咨詢建站服務(wù):18982081108
例:
int * func(void)
{
int a= 10;
int *p = a;
return p;
}
給你一個(gè)例子,是譚浩強(qiáng)的C語(yǔ)言程序設(shè)計(jì)P.199.頁(yè)的一個(gè)例子:你可以找該書來(lái)參考:
------------------------------
/*使用指向函數(shù)的指針*/
#include stdio.h
int max(int x,int y)
{
int z;
if(xy){
z=x;
}else{
z=y;
}
return z;
}
int min(int x,int y)
{
int z;
if(xy){
z=x;
}else{
z=y;
}
return z;
}
int add(int x,int y)
{
int z;
z=x+y;
return z;
}
/*第三個(gè)參數(shù)為指向返回值為整型的函數(shù)的指針*/
int process(int x,int y,int(*fun)())
{
int result;
result=(*fun)(x,y);
printf("[%d]\n",result);
}
int main(void)
{
int a,b;
printf("輸入兩個(gè)整數(shù):\n");
printf("a=");
scanf("%d",a);
printf("b=");
scanf("%d",b);
printf("大的數(shù)為:");
process(a,b,max);
printf("小的數(shù)為:");
process(a,b,min);
printf("和為:");
process(a,b,add);
return 0;
}
兩種改法:
一、?
char?*?copy(?char?s[],?int?m?)
{
int?i;
for(?i=0;im-1??s[i]!='\0'?;i++?)?;
return?s[i]?;
}
二、
char?*?copy(?char?s[],?int?m?)
{
static?char?str[80]={0}?;?//改成靜態(tài)變量,即可
int?i;
#includestdio.h
void string_cut(char s[],char c)
{int i,j;
for(i=j=0;s[i];i++)
if(s[i]!=c)s[j++]=s[i];
s[j]='\0';
}
int main()
{char s[200],ch;
gets(s);
scanf("%c",ch);
string_cut(s,ch);
printf("%s\n",s);
return 0;
}
可以。返回指針實(shí)際上就是地址。
例如:
#includestdio.h
#includestdlib.h
// 動(dòng)態(tài)分配 n 個(gè)字節(jié),返回 char *
char *f(char *name, int n){name = (char*) malloc(sizeof(char)*n);
return name;
}
// 動(dòng)態(tài)分配 n 個(gè)字節(jié),返回 void *
void *v(char *name, int n){name = (char*) malloc(sizeof(char)*n);
return name;
}
main(){ char *name;
char *p;
int *x,i;
p = f(name,50); // 給 p 分配 50個(gè)字節(jié),等于聲明了 char p[50]
scanf("%s",p); // 使用 char p[50]
printf("%s\n",p);
x = (int *) v(name,40); // 給 x 分配 40個(gè)字節(jié),(并強(qiáng)制轉(zhuǎn)換)等于聲明了 int x[10];for (i=0;i10;i++) x[i]=i+1; //使用 int x[10];
for (i=0;i10;i++) printf("%d ",x[i]);
}
這個(gè)問(wèn)題一個(gè)較為妥善的方法是把數(shù)組定義在主函數(shù),再傳入數(shù)組地址給自定義函數(shù),如果你非要在自定義函數(shù)里定義也行,至于是否需要設(shè)置為static,那得看情況,因?yàn)楹瘮?shù)退出時(shí)棧空間并不是馬上被刷新,如果你能保證該??臻g在你訪問(wèn)前沒被釋放就沒必要定義為static,但是保險(xiǎn)起見定義static更好,因?yàn)槟憧赡懿恢赖降自搩?nèi)存是不是被重新寫入了數(shù)據(jù),至于你說(shuō)要返回指向指針的指針,我舉個(gè)例子,int**
fun(),這個(gè)就是返回一個(gè)指向指針的指針,其指向的指針指向int型,呵呵,明白了沒
名稱欄目:c語(yǔ)言函數(shù)返回值為地址 c語(yǔ)言如何返回地址
路徑分享:http://aaarwkj.com/article20/dooooco.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供響應(yīng)式網(wǎng)站、移動(dòng)網(wǎng)站建設(shè)、網(wǎng)頁(yè)設(shè)計(jì)公司、商城網(wǎng)站、網(wǎng)站內(nèi)鏈、網(wǎng)站收錄
聲明:本網(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í)需注明來(lái)源: 創(chuàng)新互聯(lián)
網(wǎng)頁(yè)設(shè)計(jì)公司知識(shí)