Прежде всего, я хотел бы извиниться, если этот вопрос задан ранее на этом форуме. Я искал, но не мог найти подобную проблему.pre-increment и post-increment in C
Я новичок в C. Я проходил учебное пособие и натолкнулся на код, решение которого я не могу понять.
Вот код -
#include <stdio.h>
#define PRODUCT(x) (x*x)
int main()
{
int i=3, j, k;
j = PRODUCT(i++);
k = PRODUCT(++i);
return 1;
}
Я попытался запустить код через компилятор и получил решение как «J = 12» и «к = 49».
Я знаю, как работает #define. Он заменяет каждое появление PRODUCT (x) на (x * x), но я не могу понять, как j и k получили значения 12 и 49 соответственно.
Любая помощь будет оценена по достоинству.
Спасибо за ваше время.
NOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO! –
«Я искал, но не нашел подобной проблемы». ДЕЙСТВИТЕЛЬНО? –
«Я не могу понять, как j и k получил значения» - и ваш код не может быть, так что вы в хорошей компании. Таким образом, характер * неопределенного поведения *. – WhozCraig