我想我会得到12
,而不是7
。
w++
,则w
将为4
,即100
,以及w++
,w
将为8
,1000
;
因此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);
}
可以使用
--x
和x--
进行相同的操作。有关更多信息,请参见this relevant question。