无符号数的一个容易出错的地方

来源:互联网 发布:安全教育网络班会主题 编辑:程序博客网 时间:2024/04/29 03:32

这段代码会输出什么呢?

6

Y

 

那你就错了,输出结果是:

6

N

 

-1不是比6大吗?为什么输出的是N,而不是Y?

因为sizeof(arr)/sizeof(arr[0])返回的是一个无符号数

与无符号数比较时,-1也被当成了无符号数,-1看成无符号数将是一个很大的数,熟悉数在内存中编码方式的朋友都很清楚这一点

所以结果输出是N

 

以后碰到无符号数时要小心了

原创粉丝点击