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

目录

 一、使用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);


}

结语

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


版权声明:本文为Pan_peter原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。