#include <stdio.h> //用 char 的值作为数组下标(例如,统计字符串中每个字符出现的次数),要考虑到 //char 可能是负数。有的人考虑到了,先强制转型为 unsigned int 再用作下标,这仍然 //是错的,因为char会先字节扩展变为int,再从int变为unsigned int。 //正确的做法是,先强制转型为 unsigned char,再用作下标,这时会再隐式转换为int。 int main() { char a = 128; printf("%u\n", (unsigned)a); printf("%x\n", (unsigned)a); printf("%u\n", (unsigned char)a); printf("%x\n", (unsigned char)a); return 0; } //4294967168 //ffffff80 //128 //80 //请按任意键继续. . .
原文:http://www.cnblogs.com/lakeone/p/4985368.html