摘要:
今天在看《C程序设计语言》的时候写了如下一段代码int main(void) { unsigned int a = -20; printf("%d", a); return EXIT_SUCCESS; }Console: -20理论上a声明为unsigned int后不应该能显示正确的值,这里之所以能显示-20是由于在printf的格式化参数中使用了%d, 该函数会首先将a转化为int类型。如果你对编译器的越界处理有所了解的话,应该知道这时候一般情况下,a所表示的值为4294967276(在32位机器中,int用32位bit来表示,无符号int所能表示的最大数为4294.. 阅读全文
posted @ 2013-01-29 14:00
小豪ss
阅读(1426)
评论(2)
推荐(0)

浙公网安备 33010602011771号