Почему переменная не обновлялась после цикла for в C ?

#c

#c

Вопрос:

Как новичок в C , почему int i не выводится значение после цикла? Примечание: мы выполняем цикл по самостоятельно созданному массиву длиной 5.

 int i = 0;
std::cout << i << "n" // for testing: prints 0 

for (CArray<int>::Iter it(arr); it;   it)
{
    if (*it != eq[i])
        return 1;
      i
    std::cout << i << "n"; // for testing: prints 1, 2, 3, 4, 5
}

std::cout << i << "n"; // why does this not print anything?
  

Это возвращается на консоль:

 0
1
2
3
4
5
  

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

1. Это не обеспечивает достаточного количества кода для запуска, но это, вероятно, из-за return внутри цикла for.

2. Да, только что протестировал это, и, похоже, это проблема. Спасибо!

Ответ №1:

 int i = 0;
std::cout << i << "n" // for testing: prints 0 

for (CArray<int>::Iter it(arr); it;   it)
{
    if (*it != eq[i]) {
        std::cout << "error" << "n";
        return 1;
    }
      i
    std::cout << i << "n"; // for testing: prints 1, 2, 3, 4, 5
}

std::cout << i << "n"; // why does this not print anything?
  

Это возвращается на консоль:

 0
1
2
3
4
5
error
  

Итак, проблема была в цикле, а не в переменной.