100字范文,内容丰富有趣,生活中的好帮手!
100字范文 > C语言调用函数如何返回多个变量值?【基础】

C语言调用函数如何返回多个变量值?【基础】

时间:2023-09-06 12:14:29

相关推荐

C语言调用函数如何返回多个变量值?【基础】

最近用到了一部分C/C++的相关知识,但是C/C++的函数只能返回一个变量值,如果要返回多个就很难做。经过多方面查找资料,发现如果想返回多个变量值一般只有两种方法:

设置指针和地址;构造结构体;设置全局变量;

设置全局变量是最简单的方法,但是在有些场合并不适用。尤其是多次调用这个函数时,这个方法是特别不实用的。因此比较实用的还是前两种方法。本文以第一种方法设置指针和地址为例介绍返回多个变量值。

一、举个例子

有一个函数,传进来一个数组arr和一个int整数,返回值是两个数组,第一个数组对原始数组每一个值+int整数,第二个数组对原始数组每一个值-int整数。

代码实现:

以C为例,进行代码实现:

#include<stdio.h>/*函数*/void function(int arr[5], int arr1[], int arr2[], int x) {for (int i = 0; i < 5; i++){arr1[i] = arr[i] + x;arr2[i] = arr[i] - x;}}int main() {int arr[5] = {1,2,3,4,5 };int arr1[5];int arr2[5];int x = 1;function(arr, arr1, arr2, x);printf("arr1=%d,%d,%d,%d,%d\n", arr1[0], arr1[1], arr1[2], arr1[3], arr1[4]);printf("arr2=%d,%d,%d,%d,%d\n", arr2[0], arr2[1], arr2[2], arr2[3], arr2[4]);}

运行结果:

arr1=2,3,4,5,6

arr2=0,1,2,3,4

当然,也可以用到指针:

【由于数组名本质上是一个指针】

*代码实现2:

#include<stdio.h>/*函数*/void function(int* arr, int* arr1, int* arr2, int x) {for (int i = 0; i < 5; i++){arr1[i] = arr[i] + x;arr2[i] = arr[i] - x;}}int main() {int arr[5] = {1,2,3,4,5 };int arr1[5];int arr2[5];int x = 1;function(arr, arr1, arr2, x);printf("arr1=%d,%d,%d,%d,%d\n", arr1[0], arr1[1], arr1[2], arr1[3], arr1[4]);printf("arr2=%d,%d,%d,%d,%d\n", arr2[0], arr2[1], arr2[2], arr2[3], arr2[4]);}

ok,以上便是全部内容了,关于指针,推荐一本书籍《C Primer Plus》,参考链接:/subject/26792521/。

最后,说一下,由于我也是一个C语言方面的小白,水平有限,错误之处在所难免,欢迎大家批评指正。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。