-2

ファイル内でxの値を5として割り当て、次のコードのように実行すると、出力が392になることがわかりました

#include<stdio.h>
#define CUBE(r) ((r)*(r)*(r))
int main()
{
    int x;
    x=5;
    printf("%d\n", CUBE(++x));
    return 1;
}

しかし、「scanf()」を使用して x の値を取得し、次のコードの入力を 5 にすると、出力は 336 になります。

#include<stdio.h>
#define CUBE(r) ((r)*(r)*(r))
int main()
{
    int x;
    scanf(" %d",&x);
    printf("y is %d\n", CUBE(++x));
    return 1;
}

なぜ私はこの種の出力を得るのですか

4

2 に答える 2