求教C高手

jasmine 2011-02-09 12:48:03
#include <stdio.h>
void main()
{
int a,b,sum;
sum=0;
a=123;b=456;
sum=a+b;
printf("sum is %d\n",sum);
getchar();
}


以上这段程序为什么可以有sum=0;
也可以没有这句
...全文
72 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
rtygbwwwerr 2011-02-09
  • 打赏
  • 举报
回复
在C语言中,未初始化的变量是一个随机值。为了保证安全性,应该对变量进行初始化。
因为在sum输出之前对其进行了赋值(sum=a+b
),所以之前的初始化语句sum=0即使去掉也不会影响printf输出的内容。

pp25210 2011-02-09
  • 打赏
  • 举报
回复
sum是一个定义的int类型数值,sum=0,将其初值设置成0,如果没有sum=0系统则将其初值设置为一个随机值,
但是由于在后面有语句
sum=a+b;
所以sum的值又被重新赋值为(a+b)的值,因此有无 sum=0;结果都一样。
  • 打赏
  • 举报
回复
你必须对sum赋初值,因为它是一个随机变量,你在用它求和时不能确定它的初值是多少,所以,,,,,
淡咖啡77 2011-02-09
  • 打赏
  • 举报
回复
1楼讲的极是。

69,371

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧