在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++中称为垃圾数据),

在c语言中没有对一个变量赋值它的值是否自动赋0
它的值是否会自动赋值为0,取决于变量的类型。全局变量包括静态全局变量和非静态全局变量,在没有初始化值时,其值自动为0,即定义在所有函数外,不归属于任何一个函数的,在没有初始化值时,自动为0;静态全局变量当定义在函数内的全局变量,有static标记时,默认初始化为0值;非静态全局变量没有默认...

c语言中的未赋值参数是否默认为0
不确定。但一般情况是,静态变量(static)与全局变量都默认为0,局部变量值不确定(很多情况下不为0)。你可以测试一下:include <stdio.h> int a; \/\/全部变量 int main(){ static int b;int c;printf("a = %d, b = %d, c = %d\\n", a, b, c);return 0;} 变量在定义时就将其初...

定义一个变量后不对它赋值,是不是就默认为0了
在不同的语言中,规定有所不同。在C语言中,声明一个变量后不对它赋值,它本身是乱码,不会默认为0。

定义一个变量后不对它赋值,是不是就默认为0了
就是定义一个变量x为int类型 但是如果换成这样定义加赋值就可以 如int x = 0 如果不赋值 是不会有默认值的 默认都是null 但是像int这种类型不能为空 所以在不赋值的情况下使用x会报错

C语言中定义一个变量,不给它赋值。它会有值吗?若有是多少?
没有加static,默认为auto 型,此时,不给初值,变量的初值是随机的。如果加了static不给初值,变量的初值是默认的 0。不能说不赋初值就不行,对于局部变量,不赋初值的话,其实里面存的是一个随机的值,谁也不知道是多少。

C语言定义一个整型二维数组,若没有赋值,系统自动给的是0吗??
C语言规定,普通数组没有赋初值,默认的数组元素值是随机数,不是0。如果在定义数组时,数据类型前面加上关键字static,数组变成了静态数组;或者把数组定义在函数的外面,成为全局变量数组,这时数组元素的值自动赋值为0。

c语言中,如未对一个变量进行赋值,那输出的变量是什么?
如果是局部变量 那么是随机值 取决于编译器和系统环境 如果是静态局部变量或者是全局变量 那么值为0

为什么C语言的变量未赋初值,其值就为随机数?
这里的随机其实不是指这个变量的值是任意的,只是这个值不是你确定的。如果你了解定义一个变量就是给它分配了一块内存,但是因为没有初始化,所以这块内存里的值你是不知道的,可能是你以前赋过的值,也可能是某些程序运行是产生的,所以一般都认为其值是无法预料的。希望能帮到你,谢谢。

c语言的变量如果不付初值,变量的值是0么?
在定义全局变量(关键字是extern)和静态变量(关键字是static)是如果没有显式初始化,c的编译系统会自动将其初始化为0(若是字符类数据则初始化为‘\\0’),其余项局部变量等的初始值是随机值。可以简单的编写程序试一下。

C语言定义一个整型二维数组,若没有赋值,系统自动给的是0吗??
C语言规定,普通数组没有赋初值,默认的数组元素值是随机数,不是0。如果在定义数组时,数据类型前面加上关键字static,数组变成了静态数组;或者把数组定义在函数的外面,成为全局变量数组,这时数组元素的值自动赋值为0。

相似回答