二维数组传参的本质

简介: 二维数组传参的本质

一:二维数组的理解

二维数组的每一行可以看成一个一维数组,这个一维数组可以看成二维数组的一个元素,所以二维数组可以看成是一维数组的数组,一个元素代表一个一维数组

二维数组也是数组,数组名表示首元素的地址,就是第一行的地址,也就是一个一维数组的地址。

二:二维数组传参的本质

二维数组也是数组,数组名表示首元素的地址,就是第一行的地址,也就是一个一维数组的地址。

二维数组传参本质上也是传递了地址,传递的是第一行这个一维数组的地址,

三:二维数组传参应用

#include <stdio.h>
void test(int(*p)[5], int c, int r)//形参部分应该用数组指针接收
{
  int i = 0;
  for (i = 0; i < c; i++)
  {
    int j = 0;
    for (j = 0; j < r; j++)
    {
      //printf("%d ", *(*(p + i) + j));
      // p+i表示第i行的数组地址,
      // *(p+i)表示第i行数组的全部元素,也就表示数组名
      // *(p+i)+j表示该一维数组下第j个元素的地址
      //printf("%d ", p[i][j]);
      printf("%d ", (*(p + i))[j]);
    }
    printf("\n");
  }
}
int main()
{
  int arr[3][5] = { {1,2,3,4,5},{2,3,4,5,6},{3,4,5,6,7} };
  test(arr, 3, 5);//数组名表示首元素的地址,也就是第一行的地址
  return 0;
}
#include <stdio.h>
void test(int arr[3][5], int c, int r)//形参部分应该用数组指针接收
{
  int i = 0;
  for (i = 0; i < c; i++)
  {
    int j = 0;
    for (j = 0; j < r; j++)
    {
      //printf("%d ", *(*(arr + i) + j));
      //printf("%d ", arr[i][j]);
      printf("%d ", (*(arr + i))[j]);
    }
    printf("\n");
  }
}
int main()
{
  int arr[3][5] = { {1,2,3,4,5},{2,3,4,5,6},{3,4,5,6,7} };
  test(arr, 3, 5);//数组名表示首元素的地址,也就是第一行的地址
  return 0;
}






目录
相关文章
|
C++ Python
leetcode-530:二叉搜索树的最小绝对差
leetcode-530:二叉搜索树的最小绝对差
91 0
|
SQL 分布式计算 资源调度
ODPS开发大全:进阶篇(1)
ODPS开发大全:进阶篇
1250 13
|
编译器 C++
【C++】详解C++的继承
【C++】详解C++的继承
|
XML Java Scala
Gradle安装配置阿里云
Gradle安装配置阿里云
1582 0
|
SQL NoSQL Shell
03 MongoDB文档的各种增加、更新、删除操作总结
文章总结了MongoDB中文档的增删改操作,包括插入文档、更新现有文档以及删除文档的具体方法和示例。
1012 0
AC/DC电源模块如何做到更大的输出功率
提升AC/DC电源模块输出功率的关键在于:优化变压器设计,采用高效磁芯材料和多级结构;选择低损耗、高开关频率的功率开关器件,如MOSFET、IGBT,并行或串联使用;强化散热系统以保证高温下稳定工作;以及选取高效电源拓扑结构。这些方法满足高功率需求,提升模块性能和可靠性。
|
存储 监控 前端开发
SpringCloudAliBaba篇之SkyWalking:轻松实现应用性能监控
SpringCloudAliBaba篇之SkyWalking:轻松实现应用性能监控
3636 0
|
JSON SpringCloudAlibaba JavaScript
SpringBoot、SpringCloud、SpringCloudAlibaba的版本对应关系
SpringBoot、SpringCloud、SpringCloudAlibaba的版本对应关系
3586 1
SpringBoot、SpringCloud、SpringCloudAlibaba的版本对应关系
|
缓存 网络协议 Oracle
Spring集成H2内存数据库
H2内存数据库使用,满足缓存关系型数据库的使用,快速上手,无缝衔接oracle、mysql
1072 0
Spring集成H2内存数据库