我应该写一个带有两个参数的函数:number n 和一个 n 元素的数组。然后,该函数为数组中的每个参数赋值0。但是我一直收到这个错误:数组下标的无效类型'int [int]'。不知道我做错了什么。这是我的代码:
#include <stdio.h>
int a;
int zeros(int n, int arr);
int main () {
printf("Input array size:\n");
scanf("%d", &a);
int array[a];
zeros(a, array[a]);
return 0;
}
int zeros(int n, int arr) {
int i;
for(i=0; i<=n; i++) {
arr[i]=0;
}
return 0;
}
答案 0 :(得分:3)
您定义zeroes
以接收int arr
作为参数,然后将其作为数组处理。那不会奏效。使用:
int zeros(int n, int *arr) {
int i;
for(i=0; i<n; i++) {
arr[i]=0;
}
return 0;
}
还要注意i<n
而不是i<=n
,因为数组elemens是0 ... n-1。
在main
中,您现在必须将其称为:
zeros(a, array);
答案 1 :(得分:0)
定义数组时,应提供整数常量。使用变量是非法的。此外,将数组传递给函数时,不要提供索引。数组的起始地址(未编制索引的数组名称)就像一个指针。