面试题中的细节,你注意过么?

见过下面的这段代码吗?
unsigned char A[255],k;
cout 
<< UCHAR_MAX << endl;
for ( k = 0;k <= 255;k++)
{
   A[k] 
= k;
}

for (k = 0;k <=254;k++)
{
   cout 
<< A[k] << endl;
}

运行结果会是死循环的!!!
想过为什么吗?
k是unsigned char 类型的变量,就是说它是一个字节大小,值域范围是[0-255],
当k循环到255后还要加1,结果k的值变成了0了(相信学过计算机系统结构的都知道为什么),
所以相当于没有结束条件而无限制的死循环了。

posted on 2009-12-09 15:13 编码者-thinker 阅读(180) 评论(0)  编辑 收藏 引用


只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理


<2024年4月>
31123456
78910111213
14151617181920
21222324252627
2829301234
567891011

导航

统计

常用链接

留言簿

随笔分类

随笔档案

文章分类

文章档案

搜索

最新评论

阅读排行榜

评论排行榜