Один из моих друзей показал мне эту программу и спросил меня, почему i
переменная получает увеличение в два раза.Почему переменная «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?
Спасибо.
Также помните, что 'main' должен возвращать' int'! – peoro
Несомненно, это должен быть дубликат какого-то более раннего вопроса? –
@larsmans Это может быть, и я даже не знаю, что именно искать в этой проблеме. – Searock