【发布时间】:2014-09-13 21:12:39
【问题描述】:
我不确定为什么在通过我的函数传递数组时不能使用 sizeof(array) 只输出值 1,而不是 1000000。在将数组传递给函数之前,我打印了 sizeof(array)得到 4000000,当我尝试在函数中打印 sizeof(array) 时,我只得到 4。我可以在函数和 main 中遍历数组以显示所有值,我只是无法在函数中显示 sizeof。我是否错误地传递了数组?
#include <stdio.h>
#include <stdlib.h>
int
searchMe(int numbers[], int target)
{
printf("%d\n", sizeof(numbers));
int position = -1;
int i;
int k = sizeof(numbers) / sizeof(numbers[0]);
for (i = 0; i < k && position == -1; i++)
{
if (numbers[i] == target)
{
position = i;
}
}
return position;
}
int
main(void)
{
int numbers[1000000];
int i;
int search;
for (i = 0; i < 1000000; i++) {
numbers[i] = i;
}
printf("Enter a number: ");
scanf("%d", &search);
printf("%d\n", sizeof(numbers));
int position = searchMe(numbers, search);
printf("Position of %d is at %d\n", search, position);
return 0;
}
【问题讨论】:
标签: c arrays search sizeof sequential