目录
当我们定义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);
}
结语
大家有兴趣的话,可以运行一下上面的代码,看看自己的编译器,所运行出来的局部变量的随机值为多少。