在c语言中没有对一个变量赋值它的值是否自动赋0

如题所述

它的值是否会自动赋值为0,取决于变量的类型。

    全局变量包括静态全局变量和非静态全局变量,在没有初始化值时,其值自动为0,即定义在所有函数外,不归属于任何一个函数的,在没有初始化值时,自动为0;

    静态全局变量当定义在函数内的全局变量,有static标记时,默认初始化为0值;

    非静态全局变量没有默认初始值,C语言规定初始化值为随机值,但具体的实现由编译器决定。

C语言,是一种通用的、过程式的编程语言,广泛用于系统与应用软件的开发。具有高效、灵活、功能丰富、表达力强和较高的移植性等特点,在程序员中备受青睐。最近25年是使用最为广泛的编程语言。

温馨提示:内容为网友见解,仅供参考
第1个回答  2017-05-08
是否会自动赋值为0,取决于变量的类型。
1、全局变量,包括静态全局变量,和非静态全局变量,在没有初始化值时,其值自动为0.
即定义在所有函数外,不归属于任何一个函数的,在没有初始化值时,自动为0。
2、静态局部变量。
当定义在函数内的局部变量,有static 标记时,默认初始化为0值。
3、非静态局部变量,无默认初始值,C标准规定初始化值为随机值,但具体实现由编译器决定。
第2个回答  2010-09-13
函数外定义的变量,不管有没有加static,没有初始化的话,系统默认初始化为0;
函数体内定义的变量,只有加static,才会默认初始化为0;不然的话,它的值是未定义的(就是垃圾数据)本回答被提问者采纳
第3个回答  2010-09-13
是的.
a[2]=是错误的.
应该这样:a[2]=;数组a中有两个元素.
或者a[]=//让编译器自动计算数组中的元素个数.
一般初始化可以这样a[2]=让数组的两个元素都初始为0
对于二维以上的就这样a[2][3]={};//比一维多一对大括号{}
三维就a[2][3][4]={{}}

如果对您有帮助,请记得采纳为满意答案,谢谢!祝您生活愉快!
第4个回答  2010-09-13
除了静态数字型变量和全局数字型变量没初始化是自动赋值为0别的都不是,
别的都是一个不确定的数字(c/c++中称为垃圾数据),
相似回答