如果使用 return 語(yǔ)句的話,那么一次函數(shù)調(diào)用就只能返回一個(gè)值;如果想一次函數(shù)調(diào)用操作就能夠返回兩個(gè)值的話,那么就只能夠通過(guò)傳遞指針變量實(shí)現(xiàn)。例如下程序:
創(chuàng)新互聯(lián)公司專注于網(wǎng)站建設(shè),為客戶提供成都網(wǎng)站設(shè)計(jì)、網(wǎng)站制作、網(wǎng)頁(yè)設(shè)計(jì)開(kāi)發(fā)服務(wù),多年建網(wǎng)站服務(wù)經(jīng)驗(yàn),各類網(wǎng)站都可以開(kāi)發(fā),成都品牌網(wǎng)站建設(shè),公司官網(wǎng),公司展示網(wǎng)站,網(wǎng)站設(shè)計(jì),建網(wǎng)站費(fèi)用,建網(wǎng)站多少錢(qián),價(jià)格優(yōu)惠,收費(fèi)合理。
void mysubcall(int *, char *) ;
void main( )
{
int num = 10 ;
char mystr[20]=“1234567890”;
mysubcall(num,mystr);
printf(“%d %s\n”,num,mystr);
}
void mysubcall(int * num, char mystr[20])
{
(*num)+=40;
mystr[5]+=5;
}
該子函數(shù)返回的就是兩個(gè)值:改變后的數(shù)字、以及改變后的字符串。
你第一個(gè)調(diào)用的是數(shù)組第3個(gè)元素的值,第2次調(diào)用的是儲(chǔ)存第3個(gè)元素的地址,如果你想達(dá)到同樣的效果,用指針?lè)?hào)‘*’來(lái)輸出
一個(gè)函數(shù)只能有一個(gè)返回值,指針可以返回多個(gè),例如:
void aaa()
{
int *a,*c;
int a,c;
*a=a;*c=c;
a=b();c=b();
}
下面調(diào)用 *a和*c.
擴(kuò)展資料:
在C語(yǔ)言中,指針的使用非常廣泛,因?yàn)槭褂弥羔樛梢陨筛咝?、更緊湊的代碼??偟膩?lái)說(shuō),使用指針有如下好處:
1、指針的使用使得不同區(qū)域的代碼可以輕易的共享內(nèi)存數(shù)據(jù),這樣可以使程序更為快速高效;
2、C語(yǔ)言中一些復(fù)雜的數(shù)據(jù)結(jié)構(gòu)往往需要使用指針來(lái)構(gòu)建,如鏈表、二叉樹(shù)等;
3、C語(yǔ)言是傳值調(diào)用,而有些操作傳值調(diào)用是無(wú)法完成的,如通過(guò)被調(diào)函數(shù)修改調(diào)用函數(shù)的對(duì)象,但是這種操作可以由指針來(lái)完成,而且并不違背傳值調(diào)用。
參考資料來(lái)源:百度百科-指針 (編程語(yǔ)言中的一個(gè)對(duì)象)