我一直搞不懂为什么C语言的局部变量一定要初始化,网上看到的举例都是说因为会打印一些乱七八糟不可预测的值出来,但实际上,你管它能不能预测,一个局部变量用之前肯定是要对它赋值才会让这个变量给其他变量赋值或和其他变量参与运算,否则就是逻辑设计有问题了,比如我定义一个局部变量a,没有初始化,这个变量用的时候是从0开始的,有人可能就会说了,如果后面没有给a赋值0,就会出问题,你看,这就是没初始化的后果,可能是我认为这不是初始化的后果,这是程序逻辑设计的后果,既然要变量从0开始,那必然要在后面赋值0才能开始用,都没赋值,就直接理所当然地当它是0开始用,就很不正常了吧,局部变量初始化又不是都是规定赋0,所以还有什么值得令人信服的例子吗?
8条回答 默认 最新
- 快乐鹦鹉 2022-08-06 11:10关注
初始化是良好的编码习惯,主要是为了避免没有初始化就直接使用。虽然每个人都会认为自己不会犯这个错误,但实际这个错误发生的情况确实不少,所以在编码规范上一般会有这个要求
你说的道理都是对的。但对的不一定就一定不会发生错误。规章制度都是对的,但总会有人不小心犯错,不一定是主观的。本回答被专家选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报 编辑记录