<分区>
在下面的程序中,数组 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;
}
我想知道应该如何定义函数,以便在函数中正确读取数组的长度。