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