博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
[C Tips]善待无符号数
阅读量:6905 次
发布时间:2019-06-27

本文共 519 字,大约阅读时间需要 1 分钟。

猜猜下面代码的输出是什么?

#include 
<
stdio.h
>
ExpandedBlockStart.gifContractedBlock.gif
int
 array[] 
=
 
{
1,2,3,4,5,6,7,8,9,10}
;
#define
 TOTAL_ELEMENTS sizeof(array)/sizeof(array[0])
ExpandedBlockStart.gifContractedBlock.gif
int
 main()
{
    
int d = -1;
    printf(
"d:%d\n",d);
    
ExpandedSubBlockStart.gifContractedSubBlock.gif    
if(d > TOTAL_ELEMENTS){
                         printf(
"d:%d d > TOTAL_ELEMENTS:%d\n",d,TOTAL_ELEMENTS);
    }
    
ExpandedSubBlockStart.gifContractedSubBlock.gif    
if(d < (unsigned char)1){
         printf(
"d:%d d < unsigned char 1\n",d);
    }
    
ExpandedSubBlockStart.gifContractedSubBlock.gif    
if(d > (unsigned int)1){
              printf(
"d:%d d > unsigned int 1",d);          
                    }
                                                          
    getchar();
    }

 

ANSI C编译器下的结果为:

d:-1

d:-1 d > TOTAL_ELEMENTS:10
d:-1 d < unsigned char 1
d:-1 d > unsigned int 1

知道静悄悄的改变发生在哪儿了么?  ;-)

 

你可能感兴趣的文章
drop.delete.trauncat的区别
查看>>
状态栏 隐藏问题
查看>>
IIS
查看>>
ul li css 做横向菜单
查看>>
Android深入浅出系列之Socket—Socket编程(二)
查看>>
[原创]对于运行ASP.NET程序时,提示:无法启动程序“http://localhost:3532/Default.aspx”。的解决办法...
查看>>
[转载]在C#中使用异步Socket编程实现TCP网络服务的C/S的通讯构架(二)----使用方法...
查看>>
sencha touch 2--audio
查看>>
详细介绍Linux /etc/group文件
查看>>
解决w3wp.exe内存占用过高的方法
查看>>
basic4android 开发教程翻译(五)Android进程及activitys 生存周期
查看>>
设计模式--工厂方法模式
查看>>
如何防止你的UI出现了假死吗?
查看>>
教你如何迅速秒杀掉:99%的海量数据处理面试题
查看>>
使用FFmpeg捕获一帧摄像头图像
查看>>
请问在数据库中怎样用模糊查询查找含有通配符的项,比如 like ' ' 我要查找含有“%”的项,怎么查?...
查看>>
使用webdriver和beautifulsoup下载国家地理图片
查看>>
在Magento产品分类页面创建推荐产品
查看>>
dsp 链接命令文件的写法
查看>>
数据库表及字段命名规范
查看>>