当函数的参数中含有数组时,调用该函数时传递给函数的是数组的首地址。在声明数组的函数中使用sizeof函数将返回整个数组所占的字节数,而在被调用的函数中使用sizeof,得到的是数组首地址所占的字节数。另外,因为函数之间传递的是地址,所以在被调用函数中修改数组,原函数中的数组也会被修改。
代码事例:
#include "pch.h"
#include <iostream>
void sizeofArry(int arr[]);
int main()
{
int arry[8] = { 0,12,3,2,8,552,3,596 };
std::cout << "main sizeof arry = " << sizeof arry << std::endl;
sizeofArry(arry);
std::cout << "Hello Arry :"<<arry[1];
}
void sizeofArry(int * arry) {
std::cout << "sizeofArry = " << sizeof arry << std::endl;
*(arry+1) = 666;
return;
}