为什么使用sum时要初始化为0,一篇文章教你搞懂
1.sum在c语言中的作用英文含义sum 英文单词本身就是“总和、合计”的意思程序员习惯用它命名存放累加结果的变量。核心作用sum 是一个累加容器累加器专门用来不断收纳多个数值相加之后的合计结果。每次执行 sum sum 新数值 简写 sum 新数值 就是把新的数字加到已经存好的总和上再存回 sum。初始化规则必须初始化为 0在开始累加之前一定要写 int sum 0; 。2.为啥要初始化为01.C语言中局部变量如果不手动赋值里面是随机垃圾值2.如果不写 sum 0 sum一开始是乱码数字后续累加结果全部出错。3.就像拿空盒子装东西sum 0 相当于先把盒子清空如果不清空盒子里原本有乱七八糟的东西再往里放1、2、6……最后总数肯定不对。图片下图以没有初使化为例程序无法运行图片下图则是成功例子3.是不是只有sum要初始化为0而其他变量不用这其实是许多新手的误区不是别的变量不用初始化而是它们的使用时机不一样sum必须初始化为0是因为它在计算语句里会读取自身旧值。sum 变量在程序中会执行类似sum sum x;这样的累加语句。1.这条代码执行时计算机要先读取等号右边旧的sum值。如果 int sum; 没赋值旧sum是内存里的随机垃圾值计算直接出错。所以累加器sum在第一次使用前必须手动给初始值0。2.其他变量分两种情况情况A变量定义之后立刻给它赋新值没有先读取它本身就可以不初始化语法允许 例子int a;a 10; // 直接给a写入10全程没有读取a原来的值情况B只要变量在被赋值之前要读取自身的值参与计算就必须初始化和是不是sum无关。比如累乘变量int ret;ret ret * 3; // 错误这里要读取ret原来的值ret是垃圾值通俗总结sum的代码逻辑先读自己 → 参与计算 → 再写入新值所以必须提前初始化有些变量先写入新值 → 之后才读取使用中间不会读到垃圾值看起来“不用初始化”通用铁律所有变量通用不分名字如果变量在第一次赋值前需要读取它本身的值做运算就一定要初始化如果变量定义后第一步就是给它赋值没有读取旧值就可以不提前初始化。通过这篇文章希望大家了解到sum初始化的原因由此进而延申其他变量也需初始化不过需要分情况而定。