Код, о котором идет речь:
#include<iostream>
using namespace std;
int main() {
int a[10] = {0, 1, 0, 1, 0, 1, 1, 0, 0, 1};
for (int i = 0; i < 10; ++i) if (a[i] == 1) cout<<i<<" ";
cout<<endl;
for (int i = 0; i < 10 && a[i] == 1; ++i) cout<<i<<" ";
cout<<endl;
}
Вывод:
1 3 5 6 9
// and an empty line
Если мое понимание оценки состояния верно, то оба выхода должны быть одинаковыми.Поскольку условие a[i] == 1
проверяется каждый раз, i
увеличивается.Итак, почему это происходит?
Я проверил это с помощью g ++ и онлайнового ide, называемого ideone ссылка на код .
Я считаю, что мне не хватает чего-то очень простогоздесь, и это очень тупой вопрос, поэтому, пожалуйста, прости меня за то, что я спросил об этом заранее.