Re: sequence point (по мотивам инкремента)
От: Аноним  
Дата: 04.06.04 07:07
Оценка: +1
Здравствуйте, Аноним, Вы писали:

А>Из стандарта, я понял, что вызов функции является sequence point.


Двумя.

А>Если это так, объясните мне, как работает следующий фрагмент кода:


Следующий фрагмент кода не работает.

А>#include <iostream>

А>int f(int i) { return i;}

А>void main()
А>{
А>    int i = 0;
А>    std::cout << f(i) << " " << f(i++) << " " << f(++i) << " " << f(i++) << std::endl;
А>}

А>Или здесь UB?

Да.

А>Почему?


Потому, что переменная i модифицируется более одного раза между двумя соседними точками следования.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.