C++函数的数组参数—向函数传递数组

2020-01-06 12:07:32王冬梅

   return max;
}
运行结果:
98

我们发现,在函数里使用数组也是比较方便的。但大家有没有考虑过一个问题,我们为什么不在函数里面用sizeof算出数组的大小,而非要在函数外面算好了,再作为参数传递给函数呢?在这里,我们就有必要讲一下数组作为参数传递给函数的原理了。

我们以前说过,参数的传递是将实参的值赋给形参。然而对于数组来说却是一个例外,因为数组的数据太多了,将其一一赋值既麻烦又浪费空间,所以数组作为参数传递给函数的只是数组首元素的地址,函数在需要用到后面元素时再按照这个地址和数组下标去查找。也就是说后面的元素根本没到函数里来,所以在函数里求不出数组的大小也就不足为奇了。

所以,当一个函数的参数是一个数组时,我们必须注意要想办法让这个函数知道数组的大小。

不过,既然数组传递给函数的是数组首元素在内存中地址,而数据又都是存在内存里的,那么在函数中对数组参数的修改会不会影响到实参本身的值呢?让我们来看一段程序,验证一下我们的想法:(程序7.3.2)
#include "iostream.h"
#include "iomanip.h"