这要根据不同的编译器;
有些编译器上无符号整型是2字节16位,VC6.0是4字节32位;
如果是在2字节16位的编译器上的话:
%d表示的是有符号输出,它不管你的变量是有符号还是无符号的
面%u是无符号整型输出的正确方法
所以,上面的输出是一个负数,即-32768
存储时机器码是这样的1000000000000000一共16位,然后用%d输出就是-32768,用%u输出就正常
unsigned 是无符号整型变量,就是只能为正数的整数
程序先定义a并初始化,在输出,很好理解啊
楼上怎么弄的?不应该是a=32768 吗?
运行结果:-32768
-32768