关乎C语言的sum默认值?

img

为什么sum会等于1啊?
不应该是等于0吗?是因为我没有在最前面加一个sum=0吗?
如果我不写sum=0的话是不是sum会默认等于1?
for循环语句不应该是不成立然后直接表达sum吗?

写了下代码(sum求和时没初始化)

#include <stdio.h>  //定义头文件

int main() //主函数

{
    int i,sum;
    for(i=1;i<=10;i++){
        sum = sum + i;
    }
    printf("%d",sum);
}

输出如图:

img

改正
将sum初始化后:

#include <stdio.h>  //定义头文件

int main() //主函数

{
    int i,sum=0;
    for(i=1;i<=10;i++){
        sum = sum + i;
    }
    printf("%d",sum);
}

输出结果正确:

img


希望对题主有所帮助,望采纳!!

sum应该是个随机值
比如我这边输出的就是16

img

sum没有被赋值,循环也没有进入,sum是取的随机值

光定义没有初始化, sum是内存里面的一个随机值, 碰巧是1和55罢了

sum未初始化,系统随机分配地址,打印的只是该地址上原先的内容