在Dev-C++中运行为什么输出是这样的?

代码-1:intmain(){inta=0;intb;printf("b=%d\n",b);//b=1;return0;}此时输出结果是1;代码-2:intmain(){... 代码-1:
int main(){
int a = 0;
int b;
printf("b = %d\n",b); // b = 1;
return 0;
}
此时输出结果是 1;

代码-2:
int main(){
int a = 3;
int b;
printf("b = %d\n",b); // b = 1;
return 0;
}
此时输出结果还是 1;

代码-3:
int main(){
int a; // 或不声明变量 a
int b;
printf("b = %d\n",b); // b = 0;
return 0;
}
此时输出结果却变成了 0;
这是为什么?一般情况下变量b不应该是输出值是 0吗?为什么在变量b之前声明其它变量并赋值后变量b的初始值会变成 1?原理是什么?只有Dev-C++是这样吗?
展开
 我来答
九尾y
2019-02-13 · TA获得超过290个赞
知道小有建树答主
回答量:325
采纳率:85%
帮助的人:88.3万
展开全部
变量b没有初始化,值是系统优化自动分配到一个内存,这个内存是什么值,b就是什么值,值是随机的。所以使用b值的,一定要给一个值,这是语言的语法规则,必须遵守
帐号已注销
2019-02-14 · TA获得超过172个赞
知道小有建树答主
回答量:427
采纳率:68%
帮助的人:93.4万
展开全部
你定义了变量,却没有赋值,系统给变量分配了内存空间,但却不会对变量进行初始化,最终输出的是什么东西都是不确定的,是一种危险行为。追究到底是0还是1也是没有意义的
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2019-02-13
展开全部
变量b都没有输入值,肯定是空值
追问
空值不应该是零吗?为什么在代码1、代码2中打印的结果却是1,,?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式