是否通过函数值调用更改参数的原始值?

时间:2016-10-02 13:25:04

标签: c++

这个函数会改变我用来调用这个函数的矩阵中的原始值吗? 谢谢你的帮助。

void powerup(char mat[9][9])
 {
  for(int i=0;i<9;++i)
   {
    for(int j=0;j<9;++j)
     {
      mat[i][j]=su[i][j];
     }
   }
 }

1 个答案:

答案 0 :(得分:2)

是的,此功能将更改矩阵中的原始值。

按值调用表示将函数的参数复制到堆栈中。然后,该函数可以在不更改外部值的情况下修改这些副本。但是阵列绝不会这样。

当您将数组作为参数时,它将始终转换为指针。这意味着

void powerup(char mat[9][9])

void powerup(char (*mat)[9])

是一样的。