C语言——int a,b;(不赋值i,只定义声明的a,b为何值?)

本文探讨了不同编译器如何影响未赋值局部变量的初始化值,通过DEV-C++, Python123和菜鸟教程在线编译器的实验,揭示了编译器在随机值生成中的角色,并关注全局变量默认值的区别。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目录

 一、使用DEV-C++的结果

 二、使用第一种在线编程的c语言编译器

 三、使用第二种在线编程的c语言编译器

结论

结语


当我们定义a,b,而且他们为局部变量的时候,他们的值就会是随机值

当我们运行这个代码时:

#include <stdio.h>
int main()
{
	int a,b;
	
	printf("a=%d\n",a);
	printf("b=%d\n",b);


}

 一、使用DEV-C++的结果

 其结果如下:

由此可见:

a=0,b=1

这是为什么呢?

其实,这a,b两个局部变量,在我们没有赋值的情况下,只进行了定义声明,的确为随机值!

但是,这个随机值为多少,是由我们的编译器决定的

我这个编译器是DEVC++,所以在这个编译器编译出来的情况为:

a=0,b=1


 二、使用第一种在线编程的c语言编译器

现在我们来证明:这个随机值的大小,是由我们的编译器决定的

这用的Python123里面的在线编程的c语言编译器:

结果:

a=0

b=0

 

 三、使用第二种在线编程的c语言编译器

 再用菜鸟教程的在线编译器:

 结果:

a=0

b=0

结论

虽然这两个结果一样,但是和我用的DEVC++所运行的结果不一样。

所以: 未赋值的局部变量的值,是由我们的编译器决定的(即为随机值)

许多教材上也是这样说的。

但是这里要提一下:全局变量,默认为0。

话不多说,上图:


  代码:

#include <stdio.h>
int x,y;

int main()
{
	int a,b;
	
	printf("a=%d\n",a);
	printf("b=%d\n",b);	
	printf("x=%d\n",x);	
	printf("y=%d\n",y);


}

结语

大家有兴趣的话,可以运行一下上面的代码,看看自己的编译器,所运行出来的局部变量的随机值为多少。

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

peter123123123123

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值