中文字幕理论片,69视频免费在线观看,亚洲成人app,国产1级毛片,刘涛最大尺度戏视频,欧美亚洲美女视频,2021韩国美女仙女屋vip视频

打開APP
userphoto
未登錄

開通VIP,暢享免費電子書等14項超值服

開通VIP
【原】C語言函數(shù)返回數(shù)組的問題

有些時候需要子函數(shù)將一個數(shù)組返回出來,通常是兩種方法,一種是靠指針,另一種是結(jié)構(gòu)體。

返回非數(shù)組可以這樣使用:

比如,輸入a,返回b和c:
void fun(int a, int *pb, int *pc)
{
*pb = a - 1;
*pc = a + 1;
}

int main()
{
int a = 1;
int b, c;
fun(a, &b, &c);//輸入a返回b=a-1,c=a+1兩個結(jié)果
printf("a=%d,b=%d,c=%d",a,b,c);//輸出結(jié)果是“a=1,b=0,c=2”
return 0;
}

一、先來看依靠指針怎么做

例程1:

 1 #include "stdio.h" 2  3 char *test(char *tmp) 4 { 5     return tmp; 6 } 7  8 void main(void) 9 {10     printf("%s",test("第一個測試例子\n"));11 }

 

例程1中的test函數(shù)如果寫成下面的形式,就無法順利編譯。

例程2:

 1 #include "stdio.h" 2  3 char *test() 4 { 5     //char tmp[30]="第一個測試例子\n";//寫成這樣編譯時彈出警告,最后的結(jié)果也是亂碼 6     char *tmp="第一個測試例子";//寫成這樣可以用指針返回數(shù)組首地址 7     return tmp; 8 } 9 10 void main(void)11 {12     printf("%s",test());13 }

之所以*tmp可以而tmp[30]不可以,是因為tmp[30]是個局部變量,子函數(shù)結(jié)束時該數(shù)組地址雖然沒變,但是里面的值已經(jīng)無意義了,而*tmp是定義了一個全局變量。

但是有些時候我們必須用到類似tmp[30]而不是*tmp,這時就要用到static這個關(guān)鍵字:

例程3:

 1 #include "stdio.h" 2  3 char *test() 4 { 5     static char tmp[30]="第三個測試例子"; 6     return tmp; 7 } 8  9 void main(void)10 {11     printf("%s",test());12 }

 在數(shù)組tmp[30]前面加入了static關(guān)鍵字,它就使得tmp[30]存放在內(nèi)存中的靜態(tài)存儲區(qū)中,所占用的存儲單元一直不釋放直到整個程序運行結(jié)束.所以當主函數(shù)調(diào)用完print()函數(shù)后,該空間依然存在.所以main()函數(shù)中接到首地值后可以訪問數(shù)組中的元素.

二、使用結(jié)構(gòu)體作為返回值來傳遞數(shù)組:

 1 #include "stdio.h" 2 #include "string.h" 3  4 struct ret 5 { 6     char buf[30]; 7 };//定義結(jié)構(gòu)體時不要忘了分號 8  9 struct ret test(char *tmp)10 {11     struct ret a;12     strcpy(a.buf,tmp);13     return a;14 }15 16 17 void main(void)18 {19     struct ret b;20     b=test("用結(jié)構(gòu)體作為返回值傳遞數(shù)組");21     printf("%s",b.buf);22 }

兩點注意:

1、數(shù)組之間的賦值不要直接,即不要直接將數(shù)組A賦給數(shù)組B,而是要用strcpy(字符型數(shù)組)或者memcpy(非字符型數(shù)組)。

2、用結(jié)構(gòu)體定義變量和函數(shù)時不要忘了結(jié)構(gòu)體名(上面程序的ret)。

本站僅提供存儲服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊舉報
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
「小白到大牛之路9」交換機后臺管理系統(tǒng)之函數(shù)優(yōu)化
實驗四
嵌入式編程中的高低位交換如何實現(xiàn)?
c語言筆試題總結(jié)1
《C語言程序設(shè)計》12 函數(shù)參數(shù)寫字字帖
C|圖解指針變量
更多類似文章 >>
生活服務(wù)
熱點新聞
分享 收藏 導長圖 關(guān)注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點擊這里聯(lián)系客服!

聯(lián)系客服