printf("%d /n",x--)输出的是x,然后才减去1,x是以整数输出的,而整数是以补码形式存放的,所以需要求出0xFFFF的原码,即0x8001,对应的二进制数的最高位是符号位1(表示是负数),也就是是-0x0001,对应的十进制数就是-1,所以就输出了-1。
char x=0xFFFF;x为char, 只有8位,所以实际赋值为x=0xFF, 也就是-1. (不懂的话, 复习一下补码).然后 输出x--, 为先取值 再自减.所以会输出自减前的值-1.于是选C