БлогNot. ++i + ++i

Помощь дата->рейтинг Поиск Почта RSS канал Статистика nickolay.info Домой

++i + ++i

Всплыло в разговоре одно из уже классических для C++ обсуждений :) Сколько даст выражение на C++ из заголовка статьи для i=5? На самом деле, с точки зрения стандарта, результат не определен, т.к. оптимизирующий компилятор может переупорядочивать операции, скажем, стоящие стоящие справа от знака =. Поэтому в классическом Borland C++ 3.1 вот эта программа

#include <stdio.h>
void main() {
 int i=5;
 printf ("\n%d",++i + ++i);
}

выдаст ответ 13, а вот эта (отличается только тем, что выражение перед выводом присвоено переменной)

#include <stdio.h>
void main() {
 int i=5;
 i = ++i + ++i;
 printf ("\n%d",i);
}

уже 14 - причём, списать всё на оптимизацию нельзя, т.к. настройка по умолчанию - "No optimization".

 Статья на Lurkmore - обсуждение нецензурное :)


теги: программирование c++

показать комментарии (1)

07.11.2010, 22:28; рейтинг: 7246

  свежие записипоиск по блогукомментариистатистика

Наверх Яндекс.Метрика
© PerS
вход