C/c++函数返回多个值的方法

  介绍

小编给大家分享一下C/c++函数返回多个值的方法,希望大家阅读完这篇文章后大所收获、下面让我们一起去探讨吧!

有时我们需要从通过一个函数返回多个值,不幸的是C/c++不允许这样做;但我们可以通过一些巧妙的方法来达到这种效果。

 C/c++函数返回多个值的方法

<强>

在函数调用时,传递带有地址的参数,并使用指针更改其值,这样,修改后的值就会变成原始参数。

下面通过代码示例来看看如何实现。

示例:输入两个数,比较大小后重新输出

# include & lt; stdio.h>   空白比较(int, int, int * add_great, int * add_small)   {   如果(在b) {//变量一个存储在指针变量* add_great所指向的地址中//变量b存储在指针变量* add_small所指向的地址中   * add_great=一个;   * add_small=b;   }   其他{   * add_great=b;   * add_small=一个;   }   }   int main ()   {   int大,小,x, y;      printf(“输入两个数字:\ n");   scanf (“% d % d", x,, y);//最后两个参数是通过给出内存位置的地址来传递的。   比较(x, y,,好,,小);   printf (“\ n最大值为:% d,最小值为:% d",   大、小);      返回0;   }

输出:

 C/c++函数返回多个值的方法

因为结构是用户定义的数据类型;我们可以定义一个包含两个整数变量的结构,并将更大和更小的值存储到这些变量中,然后使用该结构的值。

示例:

# include & lt; stdio.h>   struct greaterSmaller {   int更小;   };      typedef struct greaterSmaller结构;      Struct findGreaterSmaller (int, int b)   {   结构体;   如果(在b) {   年代。大=一个;   年代。?b;   }   其他{   年代。大=b;   年代。?一个;   }      返回年代;   }   int main ()   {   int x, y;   结构体的结果;      printf(“输入两个数字:\ n");   scanf (“% d % d", x,, y);//最后两个参数是通过给出内存位置的地址来传递的。   结果=findGreaterSmaller (x, y);   printf (“\ n最大值为:% d,最小值为:% d",   结果。大,result.smaller);      返回0;   }

输出:

 C/c++函数返回多个值的方法

当一个数组作为参数传递时,它的基地址将传递给该函数,因此无论对数组副本所做的任何更改,它都会更改为原始数组。

<强>注:该方法仅当返回的项具有相同类型时才可以工作。

示例:使用数组返回多个值,会在arr[0]处存储更大的值,在加勒比海盗[1]处存储更小的值

# include & lt; stdio.h>//将较大的元素存储在arr[0]中   空白findGreaterSmaller (int, int b, int[]的arr)   {//存储更大的元素//第0个数组的索引   如果(在b) {   加勒比海盗[0]=一个;   arr [1]=b;   }   其他{   arr [0]=b;   加勒比海盗[1]=一个;   }   }//驱动程序代码   int main ()   {   int x, y;   int arr [2];      printf(“输入两个数字:\ n");   scanf (“% d % d", x,, y);      findGreaterSmaller (x, y, arr);   printf (“\ n最大值为:% d,最小值为:% d",   arr [0], arr [1]);      返回0;   }

输出:

 C/c++函数返回多个值的方法

看完了这篇文章,相信你对C/c++函数返回多个值的方法有了一定的了解,想了解更多相关知识,欢迎关注行业资讯频道,感谢各位的阅读!

C/c++函数返回多个值的方法