您的位置:首页 > 其它

函数返回多个值,传入参数和传出参数

2016-07-28 14:55 253 查看
函数包括了除函数名以外还有返回值和形参。

这个形参包括了传入参数和传出参数;

传入参数:就是数值的传递。在函数中不会修改这个参数,不会修改调用这个函数的函数的值。

例如

void exchange(int a,int b)

{

int temp;

temp = a;

a = b;

b = temp;

}

int main ()

{

int a =4;

int b = 5;

exchange(a,b);

printf("a = %d\n b = %d\n",a,b);

return 0;

}

输出的结果是

a = 4;

b = 5;

这是传参,仅仅是一个数值的传递。

在调用exchange函数的时候,空间也分配了另一个a,b变量名的空间,在exchange在调用完的时候,空间释放。

exchange函数里面的a,b和主函数里面的啊a,b的空间是不一样的。仅仅是名字一样而已。

例子:这个村子你叫张三,隔壁的村子也有一个叫张三。有一天隔壁的张三家里面有喜事,而不是你家有喜事。

根本就是两码事。

传出参数,一般传递的是地址。

例如上面这个例子,怎么讲a,b在exchange里面改变呢。

void exchange(int *a,int *b)

{

int temp;

temp = *a;

*a = *b;

*b = temp;

}

这时候传递的变量的地址。在函数调用的时候也是创建显得空间,只不过这片空间记载的是实参的地址。

正真在运行的时候通过地址找到实参的空间,将里面的数值改变。

还是上面张三为例。有喜事那家发出请柬,标明哪个村的张三家。那么去赴宴的人,按照家的地址去赴宴。

在需要改变指针变量的时候,需要传入的是指针的指针,也就是指针变量那片空间的地址。

一个函数如何返回多个值:

1.就是利用传出参数,来记载返回值。

2.返回一个数组。

3.返回一个结构体。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息