C语言:int a=32767,b …结果多少?

int a=32767,b; printf("%d",b=++a);结果多少?过程说下
2025-03-10 16:44:12
推荐回答(1个)
回答1:

32767就是
1111 1111 1111 1111
int 型占用两个字节的情况,其自增一次后变成了(在tc等编译器中,依照编译环境而定)
1000 0000 0000 0000
第一位为正负位,其计算结果为把所有位数全部变成相反的,然后加上一(此时第一个1变成了0,把它当作正数)也就是0111 1111 1111 1111
增加1为 1000 0000 0000 0000
结果就是-32768.

如果在VC中,int占用四个字节,所以结果为32768。

前缀自增(自减)操作是先自增,然后传递数值;
后缀自增(自减)操作是先传递数值,然后a的值增加 。0.