在c语言中没有对一个变量赋值它的值是否自动赋0
6个回答
展开全部
是否会自动赋值为0,取决于变量的类型。
1、全局变量,包括静态全局变量,和非静态全局变量,在没有初始化值时,其值自动为0.
即定义在所有函数外,不归属于任何一个函数的,在没有初始化值时,自动为0。
2、静态局部变量。
当定义在函数内的局部变量,有static 标记时,默认初始化为0值。
3、非静态局部变量,无默认初始值,C标准规定初始化值为随机值,但具体实现由编译器决定。
1、全局变量,包括静态全局变量,和非静态全局变量,在没有初始化值时,其值自动为0.
即定义在所有函数外,不归属于任何一个函数的,在没有初始化值时,自动为0。
2、静态局部变量。
当定义在函数内的局部变量,有static 标记时,默认初始化为0值。
3、非静态局部变量,无默认初始值,C标准规定初始化值为随机值,但具体实现由编译器决定。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
函数外定义的变量,不管有没有加static,没有初始化的话,系统默认初始化为0;
函数体内定义的变量,只有加static,才会默认初始化为0;不然的话,它的值是未定义的(就是垃圾数据)
函数体内定义的变量,只有加static,才会默认初始化为0;不然的话,它的值是未定义的(就是垃圾数据)
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
是的.
a[2]=是错误的.
应该这样:a[2]=;数组a中有两个元素.
或者a[]=//让编译器自动计算数组中的元素个数.
一般初始化可以这样a[2]=让数组的两个元素都初始为0
对于二维以上的就这样a[2][3]={};//比一维多一对大括号{}
三维就a[2][3][4]={{}}
如果对您有帮助,请记得采纳为满意答案,谢谢!祝您生活愉快!
a[2]=是错误的.
应该这样:a[2]=;数组a中有两个元素.
或者a[]=//让编译器自动计算数组中的元素个数.
一般初始化可以这样a[2]=让数组的两个元素都初始为0
对于二维以上的就这样a[2][3]={};//比一维多一对大括号{}
三维就a[2][3][4]={{}}
如果对您有帮助,请记得采纳为满意答案,谢谢!祝您生活愉快!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
除了静态数字型变量和全局数字型变量没初始化是自动赋值为0别的都不是,
别的都是一个不确定的数字(c/c++中称为垃圾数据),
别的都是一个不确定的数字(c/c++中称为垃圾数据),
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询