我想我会得到12,而不是7
w++,则w将为4,即100,以及w++w将为81000;
因此w++|z++将为100|1000 = 1100将为12

我怎么了

int main()
{
    int  w=3, z=7;
    printf("%d\n", w++|z++);
}

最佳答案

问题在于,通过使用w++|z++,您首先要使用w的值,然后将其与z的当前值进行或运算,然后将每个值递增。改用++w|++z,数字将首先递增,然后使用。

int main()
{
    int x = 10;

    // prints 10
    printf("%d\n", x++);
    // prints 11
    printf("%d\n", x);

    x = 10;
    // prints 11
    printf("%d\n" ++x);
    // prints 11
    printf("%d\n" x);
}

可以使用--xx--进行相同的操作。有关更多信息,请参见this relevant question

10-06 12:47
查看更多