二维数组作为参数,传入函数(最好用的)

2023-11-04

二维数组作为参数,传入函数(最好用的)

很多时候我都是直接通过传入一个 固定的数字来传递一个二维数组,

比如这样子定义函数 int fun(int a[][3],int n)

调用函数是 fun(a,n);

这样子调用的二维数组只能是固定已经知道的,不够灵活性。

以下介绍一下通过指针直接随意设定的二维数组;

*定义函数是 int fun(int *a,int n)

调用函数也是直接 fun(a,n);

不过有一点就是在定义数组的时候得分配一下空间以及定义的方式有些许不同,详细见下。

#include<iostream>
using namespace std;
int fun(int **a,int n)  //在这里面操作二维数组也是正常的使用 a[i][j],不用通过 *(*(a+i)+j) 这样子的繁琐的指针地址和操作
for(int i=0;i<n;i++)
{
  for(int j=0;j<n;j++)
 {
 cout<<a[i][j]<<" ";
      }
  cout<<endl;
     }
 }
 
 int main()
 {
     int n;
     cin>>n; 
     int *a[n];  
     for(int i=0;i<n;i++)   //给每行的数组分配一下空间 
     {    
         a[i]=new int [n];    
     }
     
     //下面初始化一下数组 
     int count=0;    
     for(int i=0;i<n;i++)
     {
         for(int j=0;j<n;j++)
         {
             a[i][j]=count;
             count++;
         }        
     }
  fun(a,n);//调用二维数组就可以直接用二维数组的起始地址 a 传入就可以了 
     
     return 0;
}
//上面如果不太懂的话可以对照一下下面的一维数组的指针传递,类似。
#include<iostream>
using namespace std;
int fun1(int *a,int n)
{
    for(int i=0;i<n;i++)
    {
        cout<<a[i]<<" ";
    }
}
int main()
{
    int n;
    cin>>n;
    int *b;
    b=new int [n];
    //初始化
    for(int i=0;i<n;i++)
    {
        b[i]=i;
    }
    fun1(b,n);
    return 0;
}

不过要记得清楚动态内存。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

二维数组作为参数,传入函数(最好用的) 的相关文章

  • 在 xaml 中编写嵌套类型时出现设计时错误

    我创建了一个用户控件 它接受枚举类型并将该枚举的值分配给该用户控件中的 ComboBox 控件 很简单 我在数据模板中使用此用户控件 当出现嵌套类型时 问题就来了 我使用这个符号来指定 EnumType x Type myNamespace
  • C# 异步等待澄清?

    我读了here http blog stephencleary com 2012 02 async and await html that 等待检查等待的看看它是否有already完全的 如果 可等待已经完成 那么该方法将继续 运行 同步
  • 机器Epsilon精度差异

    我正在尝试计算 C 中双精度数和浮点数的机器 epsilon 值 作为学校作业的一部分 我在 Windows 7 64 位中使用 Cygwin 代码如下 include
  • 如何在 C# 中打开 Internet Explorer 属性窗口

    我正在开发一个 Windows 应用程序 我必须向用户提供一种通过打开 IE 设置窗口来更改代理设置的方法 Google Chrome 使用相同的方法 当您尝试更改 Chrome 中的代理设置时 它将打开 Internet Explorer
  • 如何连接重叠的圆圈?

    我想在视觉上连接两个重叠的圆圈 以便 becomes 我已经有部分圆的方法 但现在我需要知道每个圆的重叠角度有多大 但我不知道该怎么做 有人有主意吗 Phi ArcTan Sqrt 4 R 2 d 2 d HTH Edit 对于两个不同的半
  • 用于 FTP 的文件系统观察器

    我怎样才能实现FileSystemWatcherFTP 位置 在 C 中 这个想法是 每当 FTP 位置添加任何内容时 我都希望将其复制到我的本地计算机 任何想法都会有所帮助 这是我之前问题的后续使用 NET 进行选择性 FTP 下载 ht
  • ASP.NET Core 3.1登录后如何获取用户信息

    我试图在登录 ASP NET Core 3 1 后获取用户信息 如姓名 电子邮件 id 等信息 这是我在登录操作中的代码 var claims new List
  • C# 列表通用扩展方法与非通用扩展方法

    这是一个简单的问题 我希望 集合类中有通用和非通用方法 例如List
  • 如何获取 EF 中与组合(键/值)列表匹配的记录?

    我有一个数据库表 其中包含每个用户 年份组合的记录 如何使用 EF 和用户 ID 年份组合列表从数据库获取数据 组合示例 UserId Year 1 2015 1 2016 1 2018 12 2016 12 2019 3 2015 91
  • 如何在 Linq to SQL 中使用distinct 和 group by

    我正在尝试将以下 sql 转换为 Linq 2 SQL select groupId count distinct userId from processroundissueinstance group by groupId 这是我的代码
  • C 函数 time() 如何处理秒的小数部分?

    The time 函数将返回自 1970 年以来的秒数 我想知道它如何对返回的秒数进行舍入 例如 对于100 4s 它会返回100还是101 有明确的定义吗 ISO C标准没有说太多 它只说time 回报 该实现对当前日历时间的最佳近似 结
  • C++ 继承的内存布局

    如果我有两个类 一个类继承另一个类 并且子类仅包含函数 那么这两个类的内存布局是否相同 e g class Base int a b c class Derived public Base only functions 我读过编译器无法对数
  • C++ 中的 include 和 using 命名空间

    用于使用cout 我需要指定两者 include
  • 当文件流没有新数据时如何防止fgets阻塞

    我有一个popen 执行的函数tail f sometextfile 只要文件流中有数据显然我就可以通过fgets 现在 如果没有新数据来自尾部 fgets 挂起 我试过ferror and feof 无济于事 我怎样才能确定fgets 当
  • C# 使用“?” if else 语句设置值这叫什么

    嘿 我刚刚看到以下声明 return name null name NA 我只是想知道这在 NET 中叫什么 是吗 代表即然后执行此操作 这是一个俗称的 条件运算符 三元运算符 http en wikipedia org wiki Tern
  • MySQL Connector C/C API - 使用特殊字符进行查询

    我是一个 C 程序 我有一个接受域名参数的函数 void db domains query char name 使用 mysql query 我测试数据库中是否存在域名 如果不是这种情况 我插入新域名 char query 400 spri
  • 类型或命名空间“MyNamespace”不存在等

    我有通常的类型或命名空间名称不存在错误 除了我引用了程序集 using 语句没有显示为不正确 并且我引用的类是公共的 事实上 我在不同的解决方案中引用并使用相同的程序集来执行相同的操作 并且效果很好 顺便说一句 这是VS2010 有人有什么
  • 现代编译器是否优化乘以 1 和 -1

    如果我写 template
  • 如何确定 CultureInfo 实例是否支持拉丁字符

    是否可以确定是否CultureInfo http msdn microsoft com en us library system globalization cultureinfo aspx我正在使用的实例是否基于拉丁字符集 我相信你可以使
  • 使用 WGL 创建现代 OpenGL 上下文?

    我正在尝试使用 Windows 函数创建 OpenGL 上下文 现代版本 基本上代码就是 创建窗口类 注册班级 创建一个窗口 choose PIXELFORMATDESCRIPTOR并设置它 创建旧版 OpenGL 上下文 使上下文成为当前

随机推荐

  • python爬取微信好友信息

    1 准备工作 平台 windows python版本 Python3 6 IDE Pycharm5 0 2 所使用的第三方库 wxpy 想要获取微信好友的信息 只能在登录成功后才能获得 常见应用场景 控制路由 只能家具等具有开放接口的物品
  • Finding a needle in Haystack:Facebook's photo storage的理解

    博客的所有内容都是个人理解 难免有理解错误的地方 欢迎大家多多拍砖 这是facebook发在OSDI上的一篇论文 讲述了facebook用于存储用户图片的系统Haystack 目前facebook存储了260billion图片 而图片文件显
  • pod状态

    Pending 该Pod已被Kubernetes系统接受 但是尚未创建一个或多个Container映像 这包括计划之前的时间以及通过网络下载图像所花费的时间 这可能需要一段时间 Running Pod已绑定到节点 并且所有容器都已创建 至少
  • 不习惯的 Vue3 起步三 の computed 和 watch

    计算属性和侦听器 Computed计算属性 在模板内表达式非常简单 如果在模板内放入过多的逻辑会使得模板过重并且难以维护 示例
  • deepsort代码改进

    DeepSORT是一个非常流行的多目标跟踪算法 但是可以通过对其代码进行改进来提高其性能和适应性 以下是一些DeepSORT代码改进的建议 使用更好的特征提取器 DeepSORT使用卷积神经网络 CNN 来提取特征 但是可以尝试使用更好的C
  • js绑定键盘快捷键实战

    下面这个函数用来响应键盘事件 标签相应onkeydown事件后调用这个函数就可以实现按键的转换功能 设置快捷键绑定function setShortcutBinding var a window event keyCode if a 8 退
  • 观点

    点击上方 小白学视觉 选择加 星标 或 置顶 重磅干货 第一时间送达 本文作者认为 深度学习只是一种计算机视觉工具 而不是包治百病的良药 不要因为流行就一味地使用它 传统的计算机视觉技术仍然可以大显身手 了解它们可以为你省去很多的时间和烦恼
  • C++构造函数是否可以定义为private

    思考下 什么时候构造函数需要定义为private 1 如果一个类的构造函数只有一个且为private 这是可以编译通过的 class Parent private Parent cout lt lt parent private lt
  • 多智能体强化学习入门(六)——MFMARL算法(Mean Field Multi-Agent RL)

    本节内容见https zhuanlan zhihu com p 56049023
  • lua 定时器以及应用

    function update timer fun for k v in pairs update timer m process time fun do v k update timer m porcess run time k end
  • qt操作excel表

    https blog csdn net cannon qi article details 79972258
  • day-37 代码随想录算法训练营(19)贪心part06

    738 单调递增的数字 思路 在给的数字中找到第一个开始递减的两个数字 将前一个数字减1 后面的数字全部变为最大值9 968 监控二叉树 思路 分三种状态 0无覆盖 1有监控 2有覆盖 分四种情况 1 两边都有覆盖 返回0 2 两边有一边无
  • 在关系数据库中。存放在数据库中的逻辑结构以什么为主 (4选一)

    C 哈希表
  • 笔试题2:如何用八进制和十六进制来表示整型数据

    八进制的含义在于每位数字的进位大小为8 也就是0 8的9个数字 十六进制的进位大小为16 除了0 9的10个数字 还包括a b c d e f来表示10 11 12 13 14 15 答案 Java的八进制采用0开头 十六进制采用0x开头
  • iOS宏定义的黑魔法 - 宏菜鸟起飞手册

    转自 OneV s Den的博客 宏定义在C系开发中可以说占有举足轻重的作用 底层框架自不必说 为了编译优化和方便 以及跨平台能力 宏被大量使用 可以说底层开发离开define将寸步难行 而在更高层级进行开发时 我们会将更多的重心放在业务逻
  • 计算机虚拟化+网络

    计算机虚拟化 网络 cookie 什么是 Cookie cookie的生命周期 cookie Cookie 用于存储 web 页面的用户信息 什么是 Cookie Cookie 是一些数据 存储于你电脑上的文本文件中 当 web 服务器向浏
  • C++像素游戏

    我的作品 鼠标板 黑科技之橡素 代码 include
  • Verilog语言实现FPGA上的计数器

    Verilog语言实现FPGA上的计数器 计数器是数字电路中经常使用的基本元素之一 它用于生成指定脉冲数量或者指定计数范围内的计数信号 在现代数字电路设计中 FPGA Field Programmable Gate Array 作为一种可编
  • QT+Opencv 时报错Failed to load module “canberra-gtk-module“

    解决方案 sudo apt get install libcanberra gtk module
  • 二维数组作为参数,传入函数(最好用的)

    二维数组作为参数 传入函数 最好用的 很多时候我都是直接通过传入一个 固定的数字来传递一个二维数组 比如这样子定义函数 int fun int a 3 int n 调用函数是 fun a n 这样子调用的二维数组只能是固定已经知道的 不够灵