日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

C函数实现返回多个值的方法

發(fā)布時(shí)間:2024/8/23 编程问答 37 豆豆
生活随笔 收集整理的這篇文章主要介紹了 C函数实现返回多个值的方法 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

C語(yǔ)言中,一個(gè)函數(shù)最多只能實(shí)現(xiàn)一個(gè)返回值。

int func (int b) { int a=5; if (a>b) return a; else return b; return 0; }


通過(guò)在函數(shù)中使用返回語(yǔ)句,返回一個(gè)值給函數(shù),同時(shí)終止函數(shù)的調(diào)用,返回主函數(shù)。

而在實(shí)際操作過(guò)程中,我們需要調(diào)用一個(gè)函數(shù),實(shí)現(xiàn)得出幾個(gè)不同結(jié)果的情況。

(1)函數(shù)返回一個(gè)數(shù)組,然后再解析數(shù)組中的每個(gè)數(shù)值的意思。

(2)指針作為參數(shù),承載所要輸出的值。



#include<stdio.h>#define IN #define OUTint volume_func(IN int length,IN int width,IN int heigh,OUT int *area_pr) {*area_pr = 2 * (length*width + width*heigh + heigh*length) ;return (length*width*heigh); } int main(int argc,char *argv[]) {int x=2,y=3,z=4 ;int area ;int volume = volume_func(x,y,z,&area);printf("volume:%d,area:%d\n",volume,area);return 0 ; }

在這里調(diào)用一次函數(shù)得到來(lái)個(gè)值,即area和volume。注意函數(shù)中形式。

意外收獲:定義宏IN,OUT來(lái)說(shuō)明每個(gè)參數(shù)是輸入?yún)?shù)還是輸出參數(shù),形同硬件的應(yīng)用。


在VC++有許多這種方法的應(yīng)用:

#include <stdlib.h> long strtol( const char *start, char **end, int base ); **end是指向指針的指針

功能:函數(shù)返回帶符號(hào)的字符串start所表示的長(zhǎng)整型數(shù)。參數(shù)base代表采用的進(jìn)制方式。指針end 指向start所表示的整型數(shù)之后的部分。如果返回值無(wú)法用長(zhǎng)整型表示,函數(shù)則返回LONG_MAXLONG_MIN. 錯(cuò)誤發(fā)生時(shí),返回零。

#include<stdio.h> #include<stdlib.h>int main() {char* p = NULL;long n3 = strtol("129gg", &p, 8); // n3 = 10printf("%d\n%s\n",n3,p);return 0; }在這里將“129gg”中數(shù)字認(rèn)為是八進(jìn)制,則012,十進(jìn)制輸出為10,p指向“9gg”





總結(jié)

以上是生活随笔為你收集整理的C函数实现返回多个值的方法的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。