Простой вопрос об массиве с ошибкой ‘int[int] для индекса массива’

#c #arrays

Вопрос:

Я новичок в C . Я пытаюсь сделать массив с рекурсией, но постоянно получаю ошибку: «недопустимые типы ‘int[int] для индекса массива». Как мне решить эту проблему?

Это мой код

 #include <iostream>
using namespace std;

int array_sum(int a[], int b[])
{
    if(a<=0)
        return 0;
    else
        return (array_sum(a, b-1)   a[b-1]);
}

int main()
{
    int a[] = {4, 2, 2};
    int b[] = {4, 3, 2, 8};

    cout << array_sum(a, 3) << endl;
    cout << array_sum(b, 4) << endl;
}
 

p/s: любое предложение по улучшению приветствуется

Комментарии:

1. Это выглядит неправильно: int b[] , а также a <= 0 .

2. Вы пытаетесь передать 3 и 4 в int b[].

3. Вы должны думать о коде, который вы пишете. Похоже, вы строите догадки. В int array_sum(int a[], int b[]) том, является ли a массивом a <= 0 , нет смысла или, по крайней мере, c так не работает. И если b — массив return (array_sum(a, b-1) a[b-1]); , то это не имеет смысла. В этом случае b , вероятно, следует назвать лучше и быть просто ан int . А затем в main для второго параметра, объявленного как массив, вы передаете 3 и 4 вместо массива.

Ответ №1:

Учитывая типы, участвующие в следующих:

 int a[], int b[]
 

Затем выражение a[b-1] индексирует массив другим массивом, что не имеет никакого смысла и напрямую соответствует указанной вами ошибке.