在C语言中,为什么定义变量的时候总是初始化为0呢?该怎么理解。

请问为什么很多时候都是初始化为0,这个0是一个整数型的数值还是一个概念东西。
搞不懂为什么是0而不是其他的?希望能举例说明。

谢谢下面各位的回复。

因为变量是可以变动的,定义一个变量不初始化时,变量会是一个随机数,进行计算了的时候,就会引用那个随机数进行计算,会有误差。
温馨提示:内容为网友见解,仅供参考
第1个回答  推荐于2018-04-19
初始化时,会为变量开辟存储空间,然后把字节变成0000 0000(就相当于复位)。

存在这种可能,该地址以前已使用过,但系统并没有回收,擦除。就存在脏数据。本回答被提问者采纳
第2个回答  2012-12-15
如果你不想去研究汇编代码,那就记住:静态存储区的变量初始化为0,堆栈区(也就是局部)的变量初始化值看编译器,VC++6.0里的编译器初始化时把函数要用的堆栈区全初始化为0xcccccccc,而堆区(动态开辟)的值是不定的。
给你一个简单的测试
#include <stdio.h>
#include <malloc.h>
int a;
int main()
{
int b;
int *c = (int *)malloc(sizeof(int));
static int d;
printf("%x\n%x\n%x\n%x\n", a,b,*c,d);
free(c);
return 0;
}本回答被网友采纳
第3个回答  2012-12-15
如果全局变量在定义时不初始化则初始值是0,如果局部变量在定义时不初始化则初始值是不确定的。
第4个回答  2012-12-15
谁说总是初始化0的,全局变量和静态变量会,局部变量不一定,可恨的不同的编译所采用的方式可能也不一样,所以建议在使用任何变量前自己要初始化

在C语言中,为什么定义变量的时候总是初始化为0呢?该怎么理解。
初始化的目的是为了防止后面没赋值就进行了使用, 变量刚定义的时候,他指向的值是不确定的,所以如果引用了一个没有赋值的变量,由于其值的不确定性,会引起程序异常。如果你后面会引用这个变量做加减操作,可以初始化为 0 ,如果后面做乘除操作,建议初始化为1 。

c语言中,变量为什么要初始化为0?
原因:sum的初始化为0,也就是令sum等于0,防止下面使用的时候,sum是一个不可预料的值。1、常量其值不可改变,符号常量名通常用大写。2、变量是以某标识符为名字,其值可以改变的量。标识符是以字母或下划线开头的一串由字母、数字或下划线构成的序列,请注意第一个字符必须为字母或下划线,否则为不...

C语言中变量初始值是0吗。
2、静态局部变量。当定义在函数内的局部变量,有static 标记时,默认初始化为0值。3、非静态局部变量,无默认初始值,C标准规定初始化值为随机值,但具体实现由编译器决定。

C语言的变量初始值都=0?为什么?等于别的可以吗啊?
当然可以 只是 零 会避免一些不必要的错误,最好赋零 呵呵 其他也没什么特别的~~

c语言中定义变量,为什么不赋初值啊?
在 C 语言中,定义变量时是否给变量赋初值取决于程序员的需求和设计决策。C 语言是一种低级语言,它允许灵活地操作内存,包括不显式地初始化变量。这样的设计允许程序员更好地控制程序的行为和性能。有几个原因可能导致在定义变量时不赋初值:1. **性能考虑:** 在一些情况下,显式初始化变量可能...

C语言中定义int变量,默认值是多少
局部变量在没有显式初始化时,其值C语言规范没做要求,可以是随机值,也可以是编译器随意给定的值。比如gcc编译器的局部变量就是随机值,可能为任何值。而微软的编译器,如VC或VS,则会初始化为全c,即0xCCCCCCCC。2、全局变量或静态局部变量。所有的全局变量,即定义在函数外的变量,默认值为0。所...

VS2010 编写c语言变量为什么要初始化?
1、C 语言变量 可以不初始化。直接定义int a;printf("%d",&a);这两句程序是直接定义并且输出变量的值,这个要看 编译器 了,有的编译会输出0,这是编译器初始化了,默认初始化为0。如果有的编译器不初始化的话会报错,即使不报错,那么printf输出的数字是随机的,是这个内存中之前存储的数据。2...

C语言中变量的初始化怎么理解?
定义不是初始化,int a叫定义,编译时分配内存。如果a不是全局变量会分配一个随机值,如果a是全局变量,则a自动赋初值0。int a=3是定义并初始化,int型还不明显,某些类型,如指针类型,const类型是必须初始化的,否则会报错。

C语言中变量的初始化怎么理解?
C语言的变量初始化,就是在定义变量的时候,赋予一个初始值。形式为 type var_name = init_value;其中init_value就是初始化值了。类似于 type var_name;var_name = init_value;不过,基于编译器的实现,一般初始化值的方式要比先定义后赋值更高效。另外,有些初始化是必须的。比如常量的定义,必须...

C语言中使用变量为什么必须要初始化?
如果不初始化,变量中存储的数据随机未知,可能会造成麻烦

相似回答