void printSizeOfArray(int a[])
{
printf("%lu\n", sizeof(a));
}
int main()
{
int it;
int a[4] = {0};
printSizeOfArray(a);
return 0;
}
当我运行代码时,我得到 8。为什么指向数组的指针是 void 类型的指针?
如果指向数组的指针是 void 类型,为什么,当我写:
int *it;
int a[4] = {0};
it = a;
printf("%lu\n", sizeof(it));
它也可以吗?我怎样才能用int
?
另外,为什么它在第二个中打印 8 而不是 4?它是指向数组 ( void*
) 而不是int
.