对于一维数组而言有两种方法:

1.函数外(主函数内)初始化数组,相当于已经分配好了一块固定的内存,然后将其地址传入函数,经过一番操作,再将地址返回。

2.函数内创建静态局部数组,操作后再返回。因为静态数组的生命周期贯穿整个程序。

具体连接如下:

https://blog.csdn.net/q54188p/article/details/113355998

对于二维数组而言:

对于所有的数组而言,不管是几维的,存储的时候都是一维的。比如二维数组,存储的 时候就是把每一行接起来形成一个一维数组,按照这个思想,我们可以知道如何在函数中正确输入和返回二维数组——当一维数组处理。

举个习题:

代码如下:

#include <stdio.h>void input(int* array, int m, int n);
void output(int* array, int m, int n);int main() {int m, n;scanf("%d%d", &m, &n);int array[m][n];input(&array[0][0], m, n);output(array, m, n);/*int i, j;for (i = 0; i < m; i++) {for (j = 0; j < n; j++) {printf("%d ", array[i][j]);}printf("\n");}*/return 0;
}void input(int* array, int m, int n) {int i, j;for (i = 0; i < m; i++) {for (j = 0; j < n; j++) {scanf("%d", &array[i * n + j]);//二维数组映射到一维数组}}
}void output(int* array, int m, int n)
{for (int j = n - 1; j >= 0; j--) {for (int i = 0; i < m; i++) {printf("%d ", array[i*n+j]);}printf("\n");}}

C语言函数如何正确的输入和返回数组(一维和二维)相关推荐

  1. C语言基础知识之define宏定义表达式,undef,内存对齐,a和a的区别,数组知识点,int (*)[10] p,二维数组参数与二维指针参数,函数指针数组,常见的内存错误及对策

    一.用define宏定义表达式 1.定义一年有多少秒: #define SEC_A_YEAR 60*60*24*365 //上述描述不可靠,没有考虑到在16位系统下把这样一个数赋给整型变量的时候可能会 ...

  2. 【C 语言】数组 ( 一维数组形参退化 | 二维数组形参退化 | 函数形参等价关系 )

    文章目录 一.一维数组形参退化 二.二维数组形参退化 三.数组形参等价关系 一.一维数组形参退化 C 中将 一维数组 作为参数 , 传递到函数中 , 该 一维数组 会退化为 指针 ; 将 int ar ...

  3. C语言入门系列之6.一维和二维数组

    数组 一.数组的概念 二.一维数组的定义与引用 1.一维数组定义 注意事项 常见错误 扩展:一维数组在内存中的存放 2.一维数组的引用 注意事项 3.一维数组的初始化 初始化赋值 动态赋值 三.二维数 ...

  4. Python 三维数组转化为二维数组 和MATLAB的reshape函数结果一致

    最近在把Matlab的toolbox转到Python语言,涉及到了很多矩阵运算,经常会用到Matlab中的reshape函数,但是Python和它reshape的结果总不一致,导致我最后Python画 ...

  5. Matlab报错:需要的 第 1 个输入, I or X, 应为 二维

    Matlab报错:需要的 第 1 个输入, I or X, 应为 二维 >> imhist(f); 错误使用 imhist 需要的 第 1 个输入, I or X, 应为 二维. 错误原因 ...

  6. c语言一维数组转化为二维矩阵,js将一维数组转化为二维数组

    遇到的问题: 后端返回的是一组一维数组,但是需要展示的格式是二维数组,常见的场景举例:后台返回10个长度的数组,需要分成3个一组展示在banner上. 例:[1,2,3,4,5,6,7,8,9,10] ...

  7. 【C 语言】数组 ( 验证二维数组内存是线性的 | 打印二维数组 | 以一维数组方式打印二维数组 | 打印二维数组值和地址 )

    文章目录 一.验证二维数组内存是线性的 1.打印二维数组 2.以一维数组方式打印二维数组 3.打印二维数组值和地址 二.完整代码示例 一.验证二维数组内存是线性的 验证二维数组内存是线性的 : 验证方 ...

  8. PHP如何判断一个数组是一维数组或者是二维数组?用什么函数?

    如题:如何判断一个数组是一维数组或者是二维数组?用什么函数? 判断数量即可 <?php if (count($array) == count($array, 1)) {echo '是一维数组'; ...

  9. 输入5个学生的名字(英文),使用冒泡排序按从大到小排序。 提示:涉及到字符串数组,一个字符串是一个一维字符数组;一个 字符串数组就是一个二维字符数组。...

    输入5个学生的名字(英文),使用冒泡排序按从大到小排序. 提示:涉及到字符串数组,一个字符串是一个一维字符数组:一个 字符串数组就是一个二维字符数组. #include <stdio.h> ...

最新文章

  1. 数据分享 | LSTM神经网络架构和原理及其在Python中的预测应用(附视频)
  2. UVALive - 3902 Network
  3. java 空格乱码_java 中文乱码以及空格乱码解决方案总结
  4. Jquery ajax提交表单几种方法详解
  5. Python实现倒计时按钮
  6. 8.业务架构·应用架构·数据架构实战 --- 技术方案书
  7. 解决计算机主机与打印机共享打印机,HP M126A打印机共享打印机后必须得主机先打印一次后其他电脑才能打印问题的解决办法...
  8. C语言入门——printf(““)左对齐与右对齐问题
  9. 服务器iso文件如何打开方式,iso文件怎么打开(iso文件用什么打开)
  10. Class 'Qcloud\Sms\SmsSingleSender' not found
  11. Windows里面比较好用的在线读书笔记软件
  12. 第三方远程控制工具TeamViewer的安装和使用教程,可下载window版和linux版,windows使用虚拟机可以与linux之间通讯
  13. rabbitmq 简易RPC调用示例
  14. 计算机类sci中接受综述么,SCI期刊接受的5大类型文章
  15. 微信小程序之window
  16. Linux 进行yum 安装是出现文件 conflicts 解决方法
  17. 抖音直播带货数据在哪里看?有哪些考核指标?
  18. 神经网络书籍pdf微盘下载,神经网络书籍推荐知乎
  19. B2B支付平台市场现状研究分析-
  20. 历年四级作文真题范文

热门文章

  1. tomcat守护进程
  2. [机器学习算法]支持向量机SVM原理简介
  3. Android 8.0 SurfaceFlinger
  4. VC知识库的一篇文章
  5. Java之socket网络编程
  6. mingw+msys windows下配置
  7. 正确性、健壮性、可靠性、效率、易用性、可读性(可理解性)、可扩展性、可复 用性、兼容性、可移植性
  8. 远程医疗中使用AR眼镜,内窥镜,视频远程诊疗方案
  9. Python OpenCV开发MR智能人脸识别打卡系统(一、需求分析与系统设计)
  10. 使用Godaddy的API批量修改域名的NameServers,指向CloudFlare的NS,享受免费的抗DDOS保护!