sizeof on array返回不同的值

ano*_*ous -2 c++ arrays

我有这个测试程序,它给出了以下输出.

#include<iostream>
#include<cstdio>
void fun(char arr[])
{
printf(".size of char : %d\n.", sizeof(arr[0]));
printf(".size of char array: %d\n.", sizeof(arr));
}

main()
{
char arr[10]={'a','b','c','d','e'};
fun(arr);

printf("size of char array: %d\n", sizeof(arr));
}
Run Code Online (Sandbox Code Playgroud)

产量

.size of char:1 ..size of char array:8 .size of char array:10

现在我明白在第一个语句中它的数组成员的大小和第三个语句的大小是整个数组的大小但是第二个printf中的8是什么在这里说的?

Day*_*rai 6

将数组的名称传递给指向其第一个元素的指针.因此sizeof返回主机系统上指针的大小为8.