пока бесконечный цикл? - PullRequest
       6

пока бесконечный цикл?

0 голосов
/ 17 марта 2011

Я сталкивался с этим вопросом на этом форуме

#include <iostream>

using namespace std;

int main(int argc, char** argv) {

    int x=0;
    while (x<3) {
        x = x++;
        cout << x << endl;
    }

    return 0;
}

, учитывая приведенный выше код, почему цикл while бесконечен?Используя gcc 4.4 под mac os, цикл while завершается :), поэтому этот вопрос не распространяется на все архитектуры.Я получаю жесткие выводы:
1
2
3

Я не вижу 0, и я предполагаю, что причина связана с двойным назначением?

Ответы [ 2 ]

14 голосов
/ 17 марта 2011
x = x++;

- неопределенное поведение

0 голосов
/ 17 марта 2011

вы никогда не увидите ноль, потому что приращение находится перед cout.

...