#include <iostream>
#include <cstring>
using namespace std;
void myFun(int a[]);
int main()
{int a[10];cout<<"aaa"<<sizeof(a)<<endl;//40 int为4,a为10个int,故为40cout<<"yy"<<sizeof(int)<<endl;//int占4个字节,结果为4memset(a, 0, sizeof(int)*10);//等价于memset(a, 0, 40),memset针对的是字节cout<<"bbb"<<sizeof(a)<<endl;//myFun(a);return 0;
}
void myFun(int a[])//这里的形参其实就是数值的首地址,int a[0]等价
{cout<<"ccc"<<sizeof(a)<<endl;//形参传入的只是数组的首地址,也就是a[0]一个int型而已,故答案为4}
当将数组名a作为实参传递给函数myFun中形参后,两个输出不相等,是因为h函数myFun中形参a是数组a的首地址,此处形参h还可以写成void myFun(int a[0])