新しい例を導入せずに、C の条件式で値を代入し、それが変更されたかどうかを同時に確認できるかどうか疑問に思います。次の例では、関数test
が修正されていると考えてください (パラメーターや戻り値を変更したくありません)。の値がテスト ルーチンによって 1 ずつインクリメントされるため、表示されるmain
ルーチンで条件のバリエーションを検索します。つまり、nsing の古い値との比較が必要です。同時に、テストによってインクリメントされない場合は印刷する必要があります。の値を格納する新しい変数を導入せずに、評価の順序などのルールを利用してこれが可能になるのではないかと思います。"works"
n
"works not"
n
n
#include <stdlib.h>
#include <stdio.h>
int test(int n)
{
return n + 1;
}
int main()
{
int n;
if ((n = test(n)) == n) {
printf("works not\n");
} else {
printf("works\n");
}
return 0;
}