Рассмотрим следующий фрагмент кода:
int totalLength = 0;
int partLength = 0;
for(; totalLength < SOME_CONST; totalLength += partLength, partLength = 0)
{
//partLength may be increased here
}
В этом конкретном случае можно ли предположить, что partLength будет установлен в 0 ПОСЛЕ того, как он будет добавлен к totalLength (поэтому, если partLength будет увеличено в теле цикла, я не буду добавлять 0 к totalLength в конце цикла) ? Я читал о последовательностях c ++ и тому подобное, но не нашел четкого ответа.
Да. Левая часть оператора запятой располагается перед правой частью. totalLength += partLength
будет полностью оценен перед выполнением partLength = 0
,
Других решений пока нет …