short(32位系统里是2字节的)是有符号数,而0xafffc是大于2字节才能存储(3字节, fc, ff, 0a三个字节的16进制数),因此赋值是没问题的,但是会被截断,即赋值后x = 0xfffc;(16进制输出, %#x);所以A,B,C描述的都不正确;
考虑到short是有符号数,并且是%d输出,因此输出的是-4(高位为符号位);