Как работает приоритет операторов? Для приведенного ниже кода почему значение j равно 22?
#include<stdio.h> int main(){ int i=5,j; j= ++i + ++i + ++i; printf("%d %d",i,j); return 0; }
why value of j is 22
Что я уже пробовал:
why value of j is 22, мои расчеты говорят 21
Graeme_Grant
Вы уверены? Я получаю результат 21.
[no name]
Я получаю 24 в visual studio 2013
Graeme_Grant
ха... Я запустил его в VS2015
[no name]
Вывод будет зависеть от компилятора.
Graeme_Grant
очень похоже на то.
[no name]
Потому что оператор инкремента имеет приоритет над оператором сложения.
DM23
Можете ли вы объяснить, какой логический компилятор (gcc) использует для вывода j как 22?
[no name]
Да, он использует любую логику, какую захочет.