下列程序执行后的输出结果是 A) -32767 B) FFFE C) -1 D) -32768 m

2025-01-02 19:41:24
推荐回答(2个)
回答1:

printf("%d /n",x--)输出的是x,然后才减去1,x是以整数输出的,而整数是以补码形式存放的,所以需要求出0xFFFF的原码,即0x8001,对应的二进制数的最高位是符号位1(表示是负数),也就是是-0x0001,对应的十进制数就是-1,所以就输出了-1。

回答2:

char x=0xFFFF;
x为char, 只有8位,所以实际赋值为x=0xFF, 也就是-1. (不懂的话, 复习一下补码).
然后 输出x--, 为先取值 再自减.
所以会输出自减前的值-1.
于是选C