Я новичок в языке C, поэтому, пожалуйста, помогите мне sum1. Написан код C
int i=3;
printf("%d",++i + ++i);
Complier дает O/P =9. Как?
Я новичок в языке C, поэтому, пожалуйста, помогите мне sum1. Написан код C
int i=3;
printf("%d",++i + ++i);
Complier дает O/P =9. Как?
Результаты не определены. Вы изменяете переменную более одного раза в выражении (или точке последовательности, чтобы быть более точным ).
Изменение переменной более одного раза между точками следования не определено, поэтому не делайте этого.
Это может быть ваш компилятор, поскольку в этом конкретном случае он решает оценить ++i + ++i
как
++i
, получив 4, оставив i равным 4++i
, получив 5, оставив i равным 5 (поскольку предыдущий шаг оставил i равным 4, увеличив его до 5)Другой компилятор, или если вы измените уровень оптимизации, или если вы немного измените код, может привести к другому результату.
10
?
- person ajay; 25.03.2014
which could be just as easily explained as your 9
части вашего комментария.
- person ajay; 26.03.2014