数组名的理解
数组名就是数组首元素(第一个元素)的地址。
两个例外:
• sizeof(数组名),sizeof中单独放数组名,这里的数组名表示整个数组,计算的是整个数组的大小,单位是字节
• &数组名,这里的数组名表示整个数组,取出的是整个数组的地址(整个数组的地址和数组首元素的地址是有区别的)
&arr[0] 和 arr 都是首元素的地址,+1就是跳过⼀个元素。
&arr是数组的地址,+1操作是跳过整个数组。
一维数组传参的本质
#
include
<stdio.h>
void
test
(
int
arr[])
{
int
sz2 =
sizeof
(arr)/
sizeof
(arr[
0
]);
printf
(
"sz2 = %d\n"
, sz2);
}
int
main
()
{
int
arr[
10
] = {
1
,
2
,
3
,
4
,
5
,
6
,
7
,
8
,
9
,
10
};
int
sz1 =
sizeof
(arr)/
sizeof
(arr[
0
]);
printf
(
"sz1 = %d\n"
, sz1);
test(arr);
return
0
;
}