#include
void fun(int arr[])
{
int i;
int arr_size = sizeof(arr)/sizeof(arr[0]);
for (i = 0; i < arr_size; i++)
printf("%d ", arr[i]);
}
int main()
{
int i;
int arr[4] = {10, 20 ,30, 40};
fun(arr);
return 0;
}
(A) 10 20 30 40
(B)机器相关
(C) 10 20
(D)北向答案: (B)
说明:在C语言中,数组参数始终被视为指针。因此,以下两个语句具有相同的含义。
void fun(int arr[])
void fun(int *arr)
[]用于清楚地表明该函数需要一个数组,尽管它什么也没有改变。人们仅出于可读性目的使用它,以便读者清楚预期的参数类型。最重要的是,切勿将sizeof用作数组参数,而应将单独的数组大小(或长度)参数传递给fun()。因此,在给定程序中,arr_size包含指针大小和整数大小的比率,此ration =与编译器有关。
#include
void fun(int arr[], size_t arr_size)
{
int i;
for (i = 0; i < arr_size; i++)
printf("%d ", arr[i]);
}
int main()
{
int i;
int arr[] = {10, 20 ,30, 40};
// Use of sizeof is fine here
size_t n = sizeof(arr)/sizeof(arr[0]);
fun(arr, n);
return 0;
}
输出:
10 20 30 40
这个问题的测验
想要从精选的最佳视频中学习和练习问题,请查看《基础知识到高级C的C基础课程》。