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

来源:互联网 发布:java 项目组管理系统 编辑:程序博客网 时间:2024/06/06 09:12

 函数包括了除函数名以外还有返回值和形参。
  这个形参包括了传入参数和传出参数;
  传入参数:就是数值的传递。在函数中不会修改这个参数,不会修改调用这个函数的函数的值。
  例如
  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.返回一个结构体。

   

0 0
原创粉丝点击