Нов съм в езика 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