一。数组名一般情况下表示首元素的地址,但有两个列外:
1.sizeof(数组名),也就是数组名单独放在sizeof 内部,这里的数组名表示整个数组,计算的是整个数组的大小,单位是字节;
2.&数组名;也就是&后面放数组名,列如&arr;这里的数组名表示整个数组,取出的是整个数组的地址;
上述可以看出sizeof(arr)的大小为16个字节,证明了计算的是整个数组的大小;
而&arr+1跳过了16个字节的地址,证明&数组名取出的是整个数组的地址。
而对于二维数组而言,数组名是首元素地址,是它的第一行,列如arr[3][4],单独的arr代表的是第一行的地址,arr+1就是跳过第一行,表示第二行的地址;
其单独放在sizeof内部也是表示整个数组;&数组名也表示整个数组的地址。
二.数组传参
下面我们看一个列子:
上述是一维数组传参的几种正确列子,数组传参时传的是首元素地址;所以我们用上述几种方式接收;
而对于二维数组来说,数组传参时,函数的设计只能省略第一维,也就是只能省略行;
对于二维数组传参,传的是首元素地址,其实就是第一行的地址,第一行是一个一维数组,所以要用一个数组指针来接收。