#include <stdio.h>
#include <string.h>
void test(int arr [],int len);
int main()
{
int size;
int arr [100] = {1,2,3,4,5,2,0,7};
size = sizeof(arr);
printf("%d\n",size); // 400
test(arr,size/sizeof(int));
return 0;
}
void test(int arr [],int len)
{
printf("%d\n",sizeof(arr)); //4
while(!arr[--len]); //从后往前遇到非0即结束
printf("%d\n",len+1); //8 在下标基础上+1
}
在原基础上修改了一下。
在test()函数里面为什么sizeof(arr)变成了4,是因为arr作为形参本身就是一个指针变量,在内存中占4个字节哦 |