今天,我写了一些代码来测试 unsigned int。
#include <stdio.h>
int sum_element(float ele[], unsigned int len);
int main(void){
float ele[] = {1.1,2.2,3.3};
float sum = sum_element(ele,3);
printf("sum is %f\n",sum);
return 0;
}
int sum_element(float ele[], unsigned int len){
int sum=0.0; //mistake,should be : float sum = 0.0
int i=0;
for(i=0;i<= len-1;i++){
printf("sum=%f, i=%d\n",sum,i);
sum += ele[i];
}
return sum;
}
在这个例子中,我有一个错误,变量sum的类型,应该是float,但是我写的是int,编译命令:
gcc test.c -o test
我运行这段代码
./test
函数 sum_element 的输出是:
sum=0.000000, i=1
sum=0.000000, i=1
sum=0.000000, i=1
然后我发现了错误,我将sum的类型改为float,然后再次编译,当我运行它时,输出是:
sum=0.000000, i=0
sum=1.100000, i=1
sum=3.300000, i=2
这一次,输出正常,但是在第一次输出中,为什么 i 的变量总是相同的值 1,有人可以告诉我吗?