首先,我想道歉,如果這個問題已經在這個論壇上提出過了。我搜索了,但找不到任何類似的問題。預增加後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」 和 「k = 49」。
我知道#define是如何工作的。它用(x * x)代替PRODUCT(x)的每一次出現,但我無法理解的是j和k分別取值12和49。
任何幫助,將不勝感激。
謝謝您的時間。
NOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO! –
'我搜查了,但是找不到任何類似的問題。'真? –
「我無法理解的是,j和k如何獲得價值」 - 你的代碼也不行,所以你的公司很好。因此*未定義行爲的性質*。 – WhozCraig