在下面的程序中,数组的长度ar
在 main 中是正确的,但temp
它显示了ar
我的计算机上指向的指针的长度为 2(以 为单位sizeof(int)
)。
#include <stdio.h>
void temp(int ar[]) // this could also be declared as `int *ar`
{
printf("%d\n", (int) sizeof(ar)/sizeof(int));
}
int main(void)
{
int ar[]={1,2,3};
printf("%d\n", (int) sizeof(ar)/sizeof(int));
temp(ar);
return 0;
}
我想知道我应该如何定义函数,以便在函数中正确读取数组的长度。