oracle函数返回多个值_C函数如何一次返回多个值呢?试试这3种方式吧!

点击上方公众号名称关注,获得更多内容

7f74bf2cfccc606bea85cd45b8a8e6e2.gif ✎ 编 者 悟 语

     想起青春追寻的昨天,你也是曾经追风的少年。

文 章 导 读

   今天给小伙伴们介绍下,用return之外的方式返回多个值的3种方式,要多多利用哈,希望对小伙伴们有所帮助哈,a901edcef42e9f1591a0cb85f6a2bf76.png

1函数返回数据的方式

    1)关于return

    函数返回值最常用的方式就是return了,但它一次只能返回一个值,你可以通过判断让它返回不同的值,但逆转不了它只能返回一个值的宿命。

    2)可以返回多个数据的方式(3种)

    ① 函数指针参数指向不同的地址,调用时传入要返回的值。

    ② 返回结构,即通过结构对要返回的值封装一下。

    ③ 函数接受函数指针,传入需要的数据,通过结构返回。

    其中③ = ① + ②。

2实例代码

    RetVal.c的代码如下。

#include 
#include 

#define   PI   3.14


// t通用结构,c为周长,s为面积 
struct csRect 


     float c,s;

}rect; 


// 函数声明 
Circle(float r, float *c, float *s);
struct csRect Rectangular(float lrect, float wrect);
Square(float edge,struct csRect *cp); 


int main(int argc, char *argv[]) 
{
 
     float cCir,sCir; 
 
     struct csRect square;

     Circle(1,&cCir,&sCir); // 传入要返回的地址
     printf("1) 函数指针参数指向不同的地址,调用时传入要返回的值,测试结果如下:\n"); 
     printf("\n\t圆的周长为:%f\n\t圆的面积为:%f\n",cCir,sCir);
    
    
     struct csRect result = Rectangular(3,4); // 传入数值
     printf("\n2) 返回结构,即通过结构对要返回的值封装一下,测试结果如下:\n"); 
     printf("\n\t长方形的周长为:%f\n\t长方形的面积为:%f\n",result.c,result.s);
    

     Square(3,&square);
     printf("\n3) 函数接受函数指针,传入需要的数据,通过结构返回,测试结果如下:\n"); 
     printf("\n\t正方形的周长为:%f\n\t正方形的面积为:%f\n",square.c,square.s);
    
     return 0;
}


// 圆 
Circle(float r, float *c, float *s)
{
     *c = 2 * PI * r;      // 周长 
     *s = PI * r * r;      // 面积 
}


// 长方形 
struct csRect Rectangular(float l, float w)
{
     struct csRect ret; 
 
     ret.c= 2 * (l + w);   // 周长
     ret.s = l * w;        // 面积 
 
     return ret;
}

// 正方形 
Square(float edge,struct csRect *cp)
{
     cp->c= 4 * edge;      // 周长
     cp->s= edge * edge;   // 面积
  
}

    函数很简单,大家要注意的是形式,多注意函数内部和调用方式!

    上面程序中打印信息的变量就是你需要的返回值,因为没有实际的应用,所以就直接打印输出了。

    需要多个返回值设置相应数量的参量就可以了。

    运行结果如下。

417726388d3d4efca7efdede1e261b30.png

总结

    今天给小伙伴们介绍下,用return之外的方式返回多个值的3种方式。后面还会有C语言相关的内容,大家敬请期待哈,43efbdf5f66501f98249fc330bf5ff6b.png

    有问题可以后台留言交流,公众号18年后新申请的,文章后不支持留言功能的。

相关文章:

原来数组还可以这么玩(宏把数组玩坏了)

利用结构数组和函数指针查找法调用函数

用掩码数组和枚举增强C代码的可读性

编程意识篇——用结构存储数据以减少函数二次调用,能替代return返回值吗

malloc为什么不能在函数体外给全局变量分配内存

用结构体和指针模拟配置芯片引脚输出高低电平

进化论——从函数指针到被结构封装的函数指针及参数的应用举例

专辑推荐:

Python技能专辑

C语言专辑

IDE调试专辑

软件推荐专辑

软实力专辑

Linux专辑

扫码关注我们

617c8a227fe61425618ca55a51c8d0bb.png

5097541ab0ae47dbf68e51b0415fab46.gif Game Over!
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值