scdwuhan 发表于 2015-1-4 09:12:27

无符号数的问题

#include <stdio.h>
float sum(float *,unsigned);
int main(int argc, char *argv[])
{
        float a={1,2,3,4,5};
    float t=sum(a,0);
        printf("t=%f\n",t);
        return 0;
}

float sum(float a[],unsigned length)
{
    int i;
    float sum=0;
        for(i=0;i<length-1;i++)
        {
                sum+=a;
        }
        return sum;
}

这边将length定义为unsigned且为0时 运行出错
将length改为int型后且为0,输出为0 即正常
求大神指点!

仰望天上的光 发表于 2015-1-4 11:17:12

for(i=0;i<length-1;i++)
这句中,length的实参是0,当length为无符号数的时候length-1。。。就是一个非常大的数
接下来自己想
页: [1]
查看完整版本: 无符号数的问题