まず、この質問がこのフォーラムでこれまでに質問された場合は、お詫び申し上げます。私は検索しましたが、同様の問題は見つかりませんでした。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の仕組みを知っています。これはPRODUCT(x)のすべての出現を(x * x)で置き換えますが、私が把握できないのは、jとkの値がそれぞれ12と49であることです。
ご協力いただければ幸いです。
ありがとうございます。
NOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOK! –
'私は検索しましたが、同様の問題は見つかりませんでした。本当に? –
「私はjとkがどのように値を得ているか把握できません」 - どちらもあなたのコードなので、あなたは良い会社です。したがって、未定義の振る舞い*の性質。 – WhozCraig