码迷,mamicode.com
首页 > 其他好文 > 详细

如何解决无法有多个返回值的问题

时间:2016-05-08 06:57:05      阅读:174      评论:0      收藏:0      [点我收藏+]

标签:引用传递 多个返回值

c语言只能有一个返回值,想要获取多个返回值,又不想或不能把他们放到一个数组,不想用全局变量,我们可以使用引用传递(pass by reference)的方法。


如,我们有变量a,b,用一个函数同时处理他们,然后返回a和b,我们可以这样:

int a = 5;
int b = 10;
changeAandB(&a,&b);
printf("a is %d, b is %d.\n", a, b);

方法changeAandB:

void changeAandB (int *p1, int *p2) 
{
    int a = *p1;
    int b = *p2;
    *p1 = ++a;
    *p2 = --b;
    *p2 = --*p2; //此处不用加括号,但是若是 (*p2)--则必须有括号
}


通过这种方法,我们实际上是改对应地址的值,所以并不像值传递那样返回一个值。

如何解决无法有多个返回值的问题

标签:引用传递 多个返回值

原文地址:http://zhicongli.blog.51cto.com/4255484/1771099

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!