C语言 二维数组做函数参数的几种情况

(1)       实参为数组元素地址,虚参为元素类型指针

(a)       调用函数:fun(*a,3*4);  //*a也可为a[0] or &a[0][0]

函数: fun(int *p,int n)  //*p也可为p[]

                                 {   p[i] or *(p+i) }

(b)       调用函数:fun(*a,3,4);  //*a也可为a[0] or &a[0][0]

   函数: fun(int *p,int m,int n) //*p也可为p[]                              

    {   *(p+i*n+j)  }  

(2)       实参为数组名,虚参为指向行的指针

          调用函数:fun(a,3);  //a也可为&a[0]

          函数: fun(int (*p)[4],int m) //(*p)[4]也可为p[][4]

                                   {   p[i][j] or *(p[i]+j)  or   *(*(p+i)+j)   }

(3)       实参、虚参都用指针数组

            因为二维数组类型为 (*)[] ,指针数组类型为 *[],所以不能把二维数组直接传给指针数组。

           调用函数:

int *b[3];   for(i=0;i<3;i++)  b[i]=a[i];
fun(b,3,4);          

 函数: fun(int  *p[],int m,int n) //*p[]也可为**p   

                               {   p[i][j] or *(p[i]+j)  or   *(*(p+i)+j)   }

(4)       使用模板编写通用性更强的函数

           调用函数:fun<3,4>(a);

           函数:template <int M,int N>

               fun(int p[M][N])

                     {    p[i][j]    }

(5)       实参为数组名,虚参数组的引用

            调用函数:                     fun(a);

           函数:                  template<int M,int N>

                                fun(int (&p)[M][N])

                                {    p[i][j] or *(p[i]+j) or *(*(p+i)+j)    }

转载于:https://www.cnblogs.com/hao02171990/archive/2013/04/09/3010864.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/474520.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

LeetCode MySQL 1336. 每次访问的交易次数

文章目录1. 题目2. 解题1. 题目 表: Visits ------------------------ | Column Name | Type | ------------------------ | user_id | int | | visit_date | date | ------------------------ (user_id, visit_date) 是该表的主键 该表的每行表示 user…

python中if命令简单介绍及注意事项(含笔记)

if语句是用来进行判断的&#xff0c;其使用格式如下&#xff1a;

putty连接linux上传python,通过PuTTY用于SSH的Python脚本

我可以在命令行中给出以下命令C:\>cd "C:\Program Files\ExtraPuTTY\Bin"C:\Program Files\ExtraPuTTY\Bin>putty.exe -ssh root172.20.0.102 22这可以帮助我通过PuTTY打开SSH会话.而我无法在Python脚本中复制它们.cwd"C://Program Files//ExtraPuTTY//Bi…

jQuery源码分析系列:事件模块概述

jQuery的事件模块是较复杂的&#xff0c;前面仅仅提到了对事件对象的包装。即统一了一些兼容性的问题。这篇会综述下jQuery的整个事件模块。后面会详细分析jQuery.event.add/jQuery.event.remove/jQuery.event.trigger。 虽然事件模块代码很难读&#xff0c;但其提供的API接口还…

LeetCode MySQL 1159. 市场分析 II(rank+over)

文章目录1. 题目2. 解题1. 题目 表: Users ------------------------- | Column Name | Type | ------------------------- | user_id | int | | join_date | date | | favorite_brand | varchar | ------------------------- user_id 是该表的主键…

linux基础 linhaifeng,Linux 基础命令(一)

Linux 基础&#xff1a;Linux 比 Windows 更稳定做服务器&#xff0c;开发出来的软件需要在服务器上运行# 测试硬盘速度dd if/dev/zero ofsdb5/test bs10G count1# 写一个 10G 的文件写文件 input fileout file block size1. 操作系统内核与系统调用1.1 操作系统操作系统是用来…

python中elif和while简单介绍及注意事项(含笔记)

一、elif 想一想&#xff1a; if能完成当xxx时做事情&#xff1b;if-else能完成当xxx时做事情1&#xff0c;否则做事情2; 如果有这样一种情况&#xff1a;当xxx1时做事情1&#xff0c;当xxx2时做事情2&#xff0c;当xxx3时做事情3&#xff0c;那该怎么实现呢&#xff1f; 答…

oracle 从别的数据库获取数据 ,访问其他数据库

在某个oracle数据库&#xff0c;获取其他oracle数据库中的数据&#xff0c;需要建立database link&#xff0c;在使用语句获取数据 假设前置机实例名prod,你要查询的用户scott密码tiger在本机:create database link xxx connect to scott identified by tiger usingprod;成功连…

linux怎么安装32电脑上,linux – 如何在Ubuntu上安装mingw32?

仔细查看实际可用的内容&#xff1a;eddmax:~$apt-cache search mingw-libassuan-mingw-w64-dev - IPC library for the GnuPG components -- Windows portlibgcrypt-mingw-w64-dev - LGPL Crypto library - Windows developmentlibgpg-error-mingw-w64-dev - library of error…

LeetCode MySQL 262. 行程和用户

文章目录1. 题目2. 解题1. 题目 Trips 表中存所有出租车的行程信息。 每段行程有唯一键 Id&#xff0c;Client_Id 和 Driver_Id 是 Users 表中 Users_Id 的外键。 Status 是枚举类型&#xff0c;枚举成员为 (‘completed’, ‘cancelled_by_driver’, ‘cancelled_by_client’…

花了一年时间开发出来的基于DXF文件的加工路径自动生成软件

随着科技水平的进步&#xff0c;计算机辅助制造技术CAD/CAM在机械加工中起着越来越重要得作用,传统的手动编程正在被自动编程所取代&#xff0c;目前PRO/E,UG,MasterCAM等商业软件可以根据设计的图形直接生成数控加工代码。然而这些软件相对来说功能复杂&#xff0c;不易掌握&a…

LeetCode 1136. 平行课程(拓扑排序)

文章目录1. 题目2. 解题1. 题目 已知有 N 门课程&#xff0c;它们以 1 到 N 进行编号。 给你一份课程关系表 relations[i] [X, Y]&#xff0c;用以表示课程 X 和课程 Y 之间的先修关系&#xff1a;课程 X 必须在课程 Y 之前修完。 假设在一个学期里&#xff0c;你可以学习任…

linux强制停止压缩任务,6.25任务(linux压缩、打包命令:zip、tar)

6.5 zip压缩工具前面的三个命令都不支持压缩目录&#xff0c;但是zip支持&#xff1a;首先压缩文件[rootlocalhost gzip]# yum -y install zip[rootlocalhost gzip]# zip b.txt.zip b.txtadding: b.txt (deflated 74%)[rootlocalhost gzip]# ls //原文件依旧存在。不…

【Android】Uri和Url和URN

最早在Android方面接触这两个概念&#xff0c;是学习ContentProvider的时候&#xff0c;当时花了很多时间&#xff0c;始终不能很好的理解他们的区别&#xff0c;顺带着ContentProvider的用法也无法理解&#xff0c;最近通过实现网页链接和Android-APP的无缝跳转问题&#xff0…

LeetCode 1259. 不相交的握手(DP)

文章目录1. 题目2. 解题1. 题目 偶数 个人站成一个圆&#xff0c;总人数为 num_people 。 每个人与除自己外的一个人握手&#xff0c;所以总共会有 num_people / 2 次握手。 将握手的人之间连线&#xff0c;请你返回连线不会相交的握手方案数。 由于结果可能会很大&#xf…

查看系统表存储过程名称

SELECT *,OBJECT_NAME(id) FROM syscomments转载于:https://www.cnblogs.com/niaowo/archive/2013/04/21/3033668.html