• 指针
  • 1.形参声明为二维数组
  • 2.形参声明为一级指针
  • 3.形参声明为二级指针

指针

关于指针的介绍和基础应用推荐一位B站up主的视频

  • 【C指针】十分钟、你要是听不懂、我当场就把这个编译器…

1.形参声明为二维数组

以求矩阵最大值为例

#include <bits/stdc++.h>
using namespace std;
const int N = 2;//要改变二维数组的行和列
const int M = 3;//只需改变这里即可
void fun(int array[][M], int, int);
//void fun(int (*array)[M], int, int);//也可这样声明,意义与下面声明为一级指针相同
int main(){int a[N][M] = {{1, 2, 3}, {4, 5, 6}};fun(a, N, M);return 0;
}void fun(int array[][M], int N, int M)
{int max = array[0][0];for (int i = 0; i < N; i ++){for (int j = 0; j < M; j ++){if(max < array[i][j]) max = array[i][j]; }}cout << max;
}

2.形参声明为一级指针

以求矩阵最大值为例

#include <bits/stdc++.h>
using namespace std;
const int N = 2;//要改变二维数组的行和列
const int M = 3;//只需改变这里即可
void fun(int* ,int ,int);
int main(){int a[N][M] = {{1, 2, 3}, {4, 5, 6}};int *p = a[0];//定义指针用于储存二维数组第一行的首地址,也就是把二维数组当作一维数组 fun(p, N, M);//函数调用时传入指针 p return 0;
}void fun(int *array, int n, int m){int max = array[0];//将 max 预设为数组的第一项 for (int i = 0; i < n * m; i ++){if(max < array[i]) max = array[i];}cout << max;
}

3.形参声明为二级指针

以求矩阵最大值为例

#include <bits/stdc++.h>
using namespace std;
const int N = 2;//要改变二维数组的行和列
const int M = 3;//只需改变这里即可
void fun(int** , int, int);
int main(){int a[N][M] = {{1, 2, 3}, {4, 5, 6}};int *p[N];//定义指针数组用于储存二维数组每行的首地址p[0] = &a[0][0];//也可以写为 a[0],目的是令 p 记录下二维数组每一行的首地址 p[1] = &a[1][0];//也可写为a[1],理由同上 //  for(int i = 0; i < N; i ++){//也可写成这样的循环赋指针
//      p[i] = &a[i][0];
//      //p[i] = a[i];
//  }fun(p, N, M);//函数调用时传入指针 p return 0;
}void fun(int **array, int n, int m){int max = array[0][0];for (int i = 0; i < n; i++){for (int j = 0; j < m; j++){if(max < array[i][j]) max = array[i][j];}}cout << max;
}

二维数组作为函数参数传递的三种方式相关推荐

  1. C语言 二维数组作为函数参数的4种方式

    前言 多维数组中,二维数组是最常用的一种.在C语言编程中,二维数组的定义.取值以及赋值都比较容易,与一维数组类似.然而,在将二维数组作为函数参数传递时,参数结构较复杂,难以理解.本文章是实用型文章,注 ...

  2. 二维数组作为函数参数传递

    二维数组作为函数参数调用过程中: void Fun(**a, m, n) {//.... } //.... Fun(a,m,n); 调用函数过程中,会发现VS报错: //IntelliSense: & ...

  3. 第二周项目1函数参数传递的三种方式

    /* .*Copyright (c) 2014,烟台大学计算机学院 *All right reserved. *文件名称:函数参数传递的三种方式.cpp *作者:彭子竹 *完成日期:2015年9月11 ...

  4. C语言学习笔记 (005) - 二维数组作为函数参数传递剖析

    前言 很多文章不外乎告诉你下面这几种标准的形式,你如果按照它们来用,准没错: //对于一个2行13列int元素的二维数组 //函数f的形参形式 f(int daytab[2][13]) {...}// ...

  5. 二维数组作为函数参数传递剖析(C语言)

    前言: 很多文章不外乎告诉你下面这几种标准的形式,你如果按照它们来用,准没错: //对于一个2行13列int元素的二维数组 //函数f的形参形式 f(int daytab[2][13]) {...}/ ...

  6. C语言二维数组作为函数参数传递

    二维数组存放方式 二维数组在内存中是按行存放的,先存储第一行,在接着存储第二行-.. 二维数组作为函数参数 二维数组作为函数的参数,实参可以直接使用二维数组名,在被调用函数中可以定义形参所有维数的大小 ...

  7. js二维数组定义和初始化的三种方法

    方法一:直接定义并且初始化,这种遇到数量少的情况可以用 var _TheArray = [["0-1","0-2"],["1-1",&quo ...

  8. 【C语言】二维数组作为函数参数传递

    二维数组只能作为函数实参传递 方法一 int in(int a[][j]); in(a); #include<stdio.h> #define i 3 #define j 3//输入二维数 ...

  9. c语言调用二维数组作为函数参数传递,C++ 二维数组作为形参传递使用实例

    在线代码编辑器: http://codepad.org/ 1.*指针 void display(int *arr, const int row, const int col) { for(int i= ...

最新文章

  1. C#设计技巧总结 网上转贴
  2. 人工智能行业应用之:为建筑工程提供全新解决方案
  3. 现代软件工程 团队博客作业 如何评价个人在团队中的绩效
  4. 什么原因导致芯片短路_血压中的低压高是什么原因导致的?会导致什么疾病?...
  5. html input 字体颜色_input使用小技巧
  6. 三相同步电机怎么接线图_智能电表怎么接线 单相 三相电表接线图大全
  7. 靠信用购物!芝麻信用上线新功能:用户可先用后买
  8. 利用计算机形考试二,计算机应用基础形考试题
  9. 你说“神马”?非正式汉语数据集资源上线,帮你训练网络语言处理
  10. 保姆级别mysql 基础练习题
  11. 软件项目验收汇报ppt_扔掉你收藏的PPT吧,设计院专用项目汇报模板来袭(68GB)!...
  12. ECharts快速上手 入门教学
  13. 黑群晖二合一已损毁_黑群晖二合一ghost安装教程(蜜獾超存可用)
  14. Ubuntu安装riscv-gnu-toolchain和riscv-tools
  15. OCCT 建模,VTK显示
  16. python如何进行md5解密_python写一个md5解密器
  17. Learn Git Branching 学习笔记(基础篇)
  18. matlab containers,matlab中的containers.Map()
  19. 让洁净煤保障群众温暖过冬
  20. opencv图像识别训练实例

热门文章

  1. Python 定义类和属性
  2. ubuntu关闭防火墙命令
  3. 如何准备软件工程师的面试[转载]
  4. 旧改快讯--星河操刀,龙华稳健工业园项目专规获批
  5. ❤️数据可视化❤️:基于Echarts + GeoJson实现的地图视觉映射散点(气泡)组件【20】 - 山东省
  6. 关于计算机的英语手抄报简单,英语手抄报图片大全简单又漂亮少字
  7. 什么是 Livepeer?
  8. mysql unix时间加索引_【mysql】mysql时间字段怎么加索引
  9. 超郁闷的,2010年春节假期(农历新年)放假安排时间表
  10. 软件架构--入门导读--欲穷千里目,更上一层楼