C语言中的整数表示

#include <stdio.h>
#include <limits.h>

int main()
{
        unsigned short i = USHRT_MAX;
        printf("max %d\n", i);
        printf("max %s\n", (i+1 > USHRT_MAX)?"yes":"no");
        printf("max %d, %d\n", i+1, ++i);
        return 0;
}

运行之后结果如下:

max 65535
max yes
max 1, 0

不解之处: 1 根据打印出来的结果,i+1之后是1,但为什么i+1>USHRT_MAX?

      2 i+1和++i结果为什么不一样?

当前项目完成之后,需要好好地研究机器中的整数表示。

posted @ 2011-07-24 10:58  茫茫深海一条鱼  阅读(804)  评论(0)    收藏  举报