二维数组传参的本质

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

一:二维数组的理解

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

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

二:二维数组传参的本质

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

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

三:二维数组传参应用

#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;
}






目录
相关文章
|
PHP 数据库 开发者
Laravel 使用 Debugbar、Blackfire 性能分析定位程序问题
本文介绍了如何使用 Laravel 的 Debugbar 和 Blackfire 工具进行性能分析和排查程序问题。通过详细的代码示例和演示的代码执行结果,展示了如何使用这些工具以及它们的常见实用方法。
554 1
|
5月前
|
机器学习/深度学习 数据可视化 算法框架/工具
使用Python实现深度学习模型:智能家庭安防系统
使用Python实现深度学习模型:智能家庭安防系统
200 1
|
存储 C++
C++实现图 - 02 图的遍历(DFS、BFS)
上一讲我们对图有了一个大概的了解,但是只讲了如何存储图,还没有讲如何遍历图。这一讲我们来介绍图的遍历方式,一共分为深度优先搜索(DFS)和宽度优先搜索(BFS)。
579 0
C++实现图 - 02 图的遍历(DFS、BFS)
|
4月前
|
SQL 关系型数据库 MySQL
SQL命令行退出操作指南:轻松掌握不同数据库环境下的退出技巧
在数据库管理与开发过程中,经常需要通过SQL命令行工具(如MySQL的mysql客户端、PostgreSQL的psql、SQL Server的sqlcmd等)与数据库进行交互
506 59
|
机器人 区块链
币圈Swap夹子套利搬砖机器人合约部署源码开发
mapping(address => bool) private[ isApproved ]; mapping(address => mapping(address => uint256)) private[ swapOrders ];
各种物流快递电子面单-Api接口(顺丰、快递鸟、菜鸟)
电子面单是一种通过热敏纸打印输出纸质物流面单的物流服务。通过热感应显示文字,打印速度比传统针式打印速度提升4~6倍。电子面单以接口形式嵌入到自己的系统、网站上,可以在自己的平台操作打印电子面单。电子面单样式: 对接接口各家对比快递电子面单接口:快递公司自己开发的电子面单服务, 商家使用必须快递公司上门做系统对接,使用一家快递则需要对接一次。
利用Uri获取返回的参数即getQueryParameter()方法的使用
有的时候需要从URL中获取一些重要的参数. 最好不要利用处理String的手段来做,可以方便地使用URI达到目的. 步骤如下: 1 将String类型的URL转变为URI 2 利用URI的getQueryParameter方法获取参数 ...
3159 0
|
5月前
|
SQL NoSQL Shell
03 MongoDB文档的各种增加、更新、删除操作总结
文章总结了MongoDB中文档的增删改操作,包括插入文档、更新现有文档以及删除文档的具体方法和示例。
182 0

热门文章

最新文章