今天说一下这个C++数组名作函数参数 | 求3*4矩阵中最大的值

C++用数组元素作函数实参 

C++中实参可以是表达式,而数组元素可以是表达式的组成部分,因此数组元素可以作为函数的实参,与用变量作实参一样,将数组元素的值传送给形参变量。

C++也可以用数组名作函数参数

此时实参与形参都用数组名。

形参可以是数组名,也可以是指针变量,它们用来 接收实参传来的地址。如果形参是数组名,它代表 的是形参数组首元素的地址。

在调用函数时,将实 参数组首元素的地址传递给形参数组名。这样,实 参数组和形参数组就共占同一段内存单元。

在C++中,数组名可以作实参和形参,传递的是数组的起始地址。 

C++用数组名作函数参数有三点需要读者注意:

  • 如果函数实参是数组名,形参也应为数组名,形参不能声明为普 通变量。实参数组与形参数组类型应一致,如不一致,结果将出错。
  • 数组名代表数组首元素的地址,并不代表数组中的全部元素,因此用数组名作函数实参时,不是把实参数组的值传递给形参, 而只是将实参数组首元素的地址传递给形参。
  • 在用变量作函数参数时,只能将实参变量的值传给 形参变量,在调用函数过程中如果改变了形参的 值,对实参没有影响,即实参的值不因形参的值改 变而改变。而用数组名作函数实参时,改变形参数 组元素的值将同时改变实参数组元素的值。

C++用多维数组名作函数参数

如果用二维数组名作为实参和形参,在对形参数组 声明时,必须指定第二维的大小,且应与实参的第二维的大小相同,第一维的大小可以指定, 也可以不指定。

//如
int array[2][3];形参数组的两个维度都指定大小
int array[][3];//只中定第二维的大小,省略第一维

上述两种写法都是符合C++的语法规则的,但是读者需要知道,不能把第二维的大小省略,否则会出错。

int array[][];//不确定二维数组的每一行每一列有多少个元素
int array[2][];//不确定第二维大小,就无法确定数组的结构

在第二维大小相同的前提下,形参数组的第一维可 以与实参数组不同

经典案例:C++求3*4矩阵中最大的数。

#include<iostream>//预处理
using namespace std;//命名空间 
int main()//主函数 
{
  int max_Array(int array[3][4]); //函数声明 
  int array[3][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12}};//定义二维数组,且赋初值 
  int max;//定义整型变量 
  cout<<"最大的数是:";//提示语句 
  max=max_Array(array);//调用下面我写的求最大值函数 
  cout<<max<<endl;//输出这个数 
  return 0;//函数返回值为0 
} 
int max_Array(int array[3][4])//自定义函数 
{
  int i,j,max;//定义变量 
  max=array[0][0];//把二维数组的第一个元素赋值给max 
  for(i=0;i<3;i++)//外层循环限制行 
  {
    for(j=0;j<4;j++)//内层循环限制列 
    {
      if(array[i][j]>max)//如果数组中有比max大的数 
      {
        max=array[i][j];//则把大的数赋值给max 
      }
    }
  }
  return max;//将大的数返回到函数调用处 
}

执行以上程序会输出:

最大的数是:12

--------------------------------
Process exited after 2.029 seconds with return value 0
请按任意键继续. . .

C++求3*4矩阵中最大的值

更多案例可以go公众号:C语言入门到精通

正文完