码迷,mamicode.com
首页 > 其他好文 > 详细

for( unsigned int i=heapSize/2-1; i>=0; --i)

时间:2015-07-17 20:38:16      阅读:136      评论:0      收藏:0      [点我收藏+]

标签:

unsigned int的表示


今天在写堆排序的时候遇到一个BUG
  1. void builMaxHeap( int *arr,unsigned int heapSize){
  2. unsigned int i;
  3. for(i=heapSize/2-1; i>=0;--i){
  4. std::cout<<i<<std::endl;
  5. //maxHeap(arr,i,heapSize); 这里暂且注释掉
  6. }
  7. }
这他娘的真是整死人,以为是自己编的程序不对,输出的结果是
技术分享
呵呵,只能呵呵了,
原因就是我们用的是无符号的unsigned int 型来表示 i
  1. for(i=heapSize/2-1; i>=0;--i){
上面换句话说就是如果 i 是负数就退出循环吧,可惜啊,对于无符号类型 i 是 永完取不到负数啊 !!!!
典型的作死








for( unsigned int i=heapSize/2-1; i>=0; --i)

标签:

原文地址:http://www.cnblogs.com/yml435/p/4655456.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!