无符号数的问题
#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 即正常
求大神指点!
for(i=0;i<length-1;i++)
这句中,length的实参是0,当length为无符号数的时候length-1。。。就是一个非常大的数
接下来自己想
页:
[1]