1. 将待返回的数组在外部进行创建,之后作为函数的输入参数被修改,由于函数不需要返回值,不会产生内存泄露之类的问题。举例如下:
#include <iostream>
const int ArSize = 12;
void sum_and_sub(int arr1[], int arr2[], int ArSize, int sum_result[], int sub_result[]);
int main()
{using namespace std;int arr1[ArSize] = { 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 };int arr2[ArSize] = { 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 };int sum_result[ArSize], sub_result[ArSize];sum_and_sub(arr1, arr2, ArSize, sum_result, sub_result);for (int i = 0; i < ArSize; i++){cout << sum_result[i] << " ";};cout << endl;for (int i = 0; i < ArSize; i++){cout << sub_result[i] << " ";};cout << endl;return 0;
}
void sum_and_sub(int arr1[], int arr2[], int ArSize, int sum_result[], int sub_result[])
{for (int i = 0; i < ArSize; i++){sum_result[i] = arr1[i] + arr2[i];sub_result[i] = arr1[i] - arr2[i];};
}

这种写法的问题很明显:
首先是写法复杂,因为要预先声明多个输入多个输出;
其次是因为你需要的输入和输出都是作为函数的输入,所以容易混淆;
最后在某些情况下会导致未初始化的值。

2. 结构化,上述函数的前两个问题都可以通过结构化来避免。举例如下:
#include <iostream>
const int ArSize = 12;struct Result {int sum_result[ArSize];int sub_result[ArSize];Result(){memset(this, 0, sizeof(Result));}
};Result sum_and_sub(int arr1[], int arr2[], int ArSize);using namespace std;int main()
{int arr1[ArSize] = { 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 };int arr2[ArSize] = { 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 };Result results = sum_and_sub(arr1, arr2, ArSize);for (int i = 0; i < ArSize; i++){cout << results.sum_result[i] << " ";};cout << endl;for (int i = 0; i < ArSize; i++){cout << results.sub_result[i] << " ";};cout << endl;return 0;
}Result sum_and_sub(int arr1[], int arr2[], int ArSize)
{Result results;for (int i = 0; i < ArSize; i++){//cout << results.sum_result[i];results.sum_result[i] = arr1[i] + arr2[i];results.sub_result[i] = arr1[i] - arr2[i];};return results;
}

这种写法相对来说比上面显得整洁,结构化也比较好管理。
后续还有用指针的写法。

REF:https://blog.csdn.net/shi2xian2wei2/article/details/95488707

C++使函数返回多个数组相关推荐

  1. c语言函数返回值存放数组,C语言函数返回数组

    C编程语言不允许返回整个数组作为函数的参数.但是,您也可以返回一个指针,没有索引到一个数组中指定数组的名称.你将学习在下一章节中,这样你就可以跳过这一章,直到你理解这个概念在C中的指针的指针 如果你想 ...

  2. c++函数返回二维数组_C++ 怎样让函数返回数组

    作者:杨溪  链接:https://www.cnblogs.com/yangxi/archive/2011/09/18/2180759.html 这个问题属于非常初级的问题,但是对于初学不知道的人可能 ...

  3. C语言如何返回char类型,函数返回char类型数组,调用 函数后如何接收值?

    我现在刚在学C语言,今天想要实现一个功能: 用C语言读取一个文件的指定行,(如读取a.log文件的3--5行),现在实现了读取函数, 但在main函数调用时不知道怎么接收返回的值. 代码如下: #in ...

  4. C语言 函数返回二维数组

    #include <stdio.h> #include <stdlib.h> #include <string.h>#define N 5double** Link ...

  5. C语言子函数返回二维数组讨论

    C语言中,在子函数中将一个二维数组返回 都知道,在子函数中,一定不能返回一个局部变量的指针,局部变量在子函数中进行创建,子函数调用结束后,该指针将被释放掉. 如果被指针所指向的该内存空间被别的程序占用 ...

  6. C语言中函数返回的字符数组为null——函数中的局部字符数组

    今天在刷题时,碰到这样一个问题,我定义的函数要求返回的是字符串,我在函数中定义了一个字符数组来表示,但是运行时发现函数的返回值为空. 解决方法: 方法1:将字符数组定义为全局变量 方法2:用stati ...

  7. c++ vector转换成二维数组(C++ 函数返回二维数组)

    c++不能直接返回数组,可以返回指针,指针指向一个地址. float **convertVector2array(vector<float> v, int rows, int cols) ...

  8. c语言枚举如何当函数返回值,C语言学习五 — 数组与枚举

    数组 C 语言支持数组数据结构,它可以存储一个固定大小的相同类型元素的顺序集合.数组是用来存储一系列数据,但它往往被认为是一系列相同类型的变量. 数组的声明并不是声明一个个单独的变量,比如 numbe ...

  9. c 语言 函数返回数组_如何在C ++函数中返回数组

    c 语言 函数返回数组 介绍 (Introduction) In this tutorial, we are going to understand how we can return an arra ...

  10. linux shell 字符串 数组,bash shell函数返回数组字符串

    #!/bin/bash # script:getselfvar.sh # 每个脚本中都在末尾追加了一段特殊的域名ip序列,需要将这段序列存放到数组变量中,供 # 脚本使用,例子中的ip和域名是处理过的 ...

最新文章

  1. 射频全网通笔记(附全球频段划分及主要运营商对应表)
  2. python3实现字符串的全排列的方法(无重复字符)
  3. JavaWeb(二)——Http协议
  4. 推荐给程序猿们好用的谷歌插件
  5. 动态绑定 datagridview
  6. 可以查python题的_Python练习题4.9查询水果价格
  7. JavaScript文件存储信息对象cookie编码生存期
  8. SQL*Plus 系统变量之32 - NEWP[AGE]
  9. day09 python之函数进阶
  10. python cls参数_python cls self 讲解
  11. 【脑洞探究】等公交该站在哪儿比较合适?——关于减少吸入空气污染物(pm2.5 or 雾霾等)而选择合适等候公交车位置的探究
  12. c语言20%3c=10,C语言  练习题(2)
  13. 可实现ffmpeg转码的cuda显卡
  14. 定时任务中cron表达式详解
  15. 用Windows自带图片查看器查看图片的dpi分辨率大小
  16. web开发 省市县三级联动
  17. 高级项目经理资质论文
  18. KK凯文.凯利:第一届中国社群领袖峰会演讲实录(全部版)
  19. javascript 递归乘阶
  20. 嵌入式面试总结(持续更新)

热门文章

  1. 欧盛K7儿童手机,全面保护青少年儿童身心健康
  2. C#中构造函数和析构函数的用法
  3. Openfire Meetings插件是一个包含各种Jitsi项目(如VideoBridge和Meet)的实现
  4. 微信域名防红防屏蔽系统的原理 微信域名防屏蔽的注意点
  5. CentOS 7下安装GUI图形界面
  6. 英语四级阅读猜题的技巧
  7. 操作WORD配置说明
  8. 训练集、验证集、测试集
  9. 【论文阅读】Rich feature hierarchies for accurate object detection and semantic segmentation
  10. 【GNN】一文轻松了解Graph Neural Networks