Один из моих друзей показал мне эту программу и спросил, почему переменная i
увеличивается в два раза.
В соответствии с моим пониманием MAX(i++, ++j);
в этой строке i
сначала отправляется в качестве параметра, а затем увеличивается, поэтому, если начальное значение i
равно 10
, то увеличенное значение должно быть 11
, но показывает увеличенное значение i
как 12
.
Программа:
#include<stdio.h>
#define MAX(x,y) (x)>(y)?(x):(y)
void main(void)
{
int i = 10;
int j = 5;
int k = 0;
k = MAX(i++, ++j);
printf("%d %d %d",i,j,k);
}
Вывод:
12 6 11
Может кто-нибудь объяснить, как значение увеличивается до 12?
Спасибо.