C 尝试访问数组元素:下标值不是数组、指针或向量
我试图编写一个函数,将数组中的元素相加。不幸的是,每次尝试访问数组元素时,在编译时都会收到上面提到的错误消息。发生了什么事C 尝试访问数组元素:下标值不是数组、指针或向量,c,arrays,C,Arrays,我试图编写一个函数,将数组中的元素相加。不幸的是,每次尝试访问数组元素时,在编译时都会收到上面提到的错误消息。发生了什么事 #include <stdio.h> int arraySum(ar, number) { int x = 0; int i; for (i = 0; i < number; i++) { x += ar[i]; } return x; } int main (void) { int a
#include <stdio.h>
int arraySum(ar, number) {
int x = 0;
int i;
for (i = 0; i < number; i++) {
x += ar[i];
}
return x;
}
int main (void) {
int ar[4] = {3,6,9,12};
int number = 4;
printf("The sum is %i",arraySum(ar[4], number));
return 0;
}
#包括
内部阵列(ar,数字){
int x=0;
int i;
对于(i=0;i
1)int-arraySum(ar,number)
-在函数声明中,必须提供参数的类型。但你没有。2) 在
main
中,您试图访问ar[4]
,这是ar
的第五个元素,它只有4个元素。这就是您的代码应该是什么样子:
#include <stdio.h>
int arraySum(int ar[], int number) {
int x = 0;
int i;
for (i = 0; i < number; i++) {
x += ar[i];
}
return x;
}
int main (void) {
int ar[4] = {3,6,9,12};
int number = 4;
printf("The sum is %i",arraySum(ar, number));
return 0;
}
#包括
int arraySum(int-ar[],int-number){
int x=0;
int i;
对于(i=0;i
你可以在这里测试
您完全忘记了声明arraySum()参数的类型,所以编译器一开始不知道应该期望什么,然后您还尝试将ar[4]传递给函数,该函数不是数组的有效索引,即使有5个成员,也只传递一个int值而不是整个数组。
int-arraySum(ar,number){
-->int-arraySum(int-ar[],int-number){
,arraySum(ar[4],number)
-->arraySum(ar,number)
我喜欢这样做,因为它将纠错的工作留给了OP,这意味着对于OP来说,学习经验将更加宝贵和难忘。