输出如果是-1,应该是65535;
定义为unsigned,是为了在程序中作为无符号类型来用,输出时应该按照无符号类型输出,
printf("a=%u\n",a);
应该是楼主把65535写成是35535了35535输出的结果是a=-30001;如果把35535改成65535输出的结果就是a=-1;如果把后面的printf("a=%d",a);改成printf("a=%u\n",a);输出的结果就是会是a=65535
A好象超出了短整形的定义范围,输出的结果是任意的吧