
正文
c语言全局变量不定义初值,c语言中的全局变量如果没有指定初值
提示:扫一扫查出行【扫一扫了解最新限行尾号】
复制提示
C语言字符数组不赋初值是默认为\0还是随机值
1、没有赋值的就是随机值,系统不会对它们填默认值。
2、C语言规定,普通数组没有赋初值,默认的数组元素值是随机数,不是0。如果在定义数组时,数据类型前面加上关键字static,数组变成了静态数组;或者把数组定义在函数的外面,成为全局变量数组,这时数组元素的值自动赋值为0。
3、如果加了static不给初值,变量的初值是默认的 0。
相关问答
Q1: C语言中,只定义了变量类型不给变量赋初值的话?那么引用起来默认的数值...
如果加了static不给初值,变量的初值是默认的 0。不能说不赋初值就不行,对于局部变量,不赋初值的话,其实里面存的是一个随机的值,谁也不知道是多少。
这个和变量的类型有关系,比如对于数值类型(Byte,Integer,Long以及Single和Double),在没有赋具体值给这些类型的变量时,它们的默认值都为0。而对于Boolean类型,其默认值为False。
看编译器的特性了,按照vs的标准是随机数,vc下基本上是0,如果恰好这块内存之前被使用过,就正好是原先地址上的值了。按照c++的定义,这个值应该被编译器赋值为随机数。
输出结果就是97了。所以对于字符变量也可以这样理解:是单字节的整型变量。所以当然可以对一个字符变量赋值一个1啊。
Q2: c语言中定义变量不赋初值默认是多少?
如果加了static不给初值,变量的初值是默认的 0。
如果加了static不给初值,变量的初值是默认的 0。不能说不赋初值就不行,对于局部变量,不赋初值的话,其实里面存的是一个随机的值,谁也不知道是多少。
不一定。是一个不确定的数。因为没给变量付值,这个变量的地址空间可能已经存储了数据而没有清除。当你个变量付初值后,新付的值会将以前的数据覆盖掉。所以变量如果不付初值,它是一个不确定的数。
Q3: C语言中每个变量都要赋值吗
1、C语言中的变量可以赋值。C语言中定义变量的格式非常简单,如下所示:首先要强调的一点是:最后的分号千万不要丢了。变量的定义是一个语句,我们说过,语句都是以分号结尾的。
2、不一定,变量存放的地方有几种,比方栈、堆、bss段、data段。像函数定义的局部变量一般都是放在栈下,栈里面的数据是随机的,如果你不初始化的话,那有可能就是一个意想不到的值。
3、不一定。是否赋初始值是按照编程的实际需要来确定的。1 对于全局变量和局部静态变量,如果没有初始化值,那么系统默认赋值为0。所以当这类变量的初始值要求为0,或者不关心初始值时,定义时不需要赋初值,这样可以提高效率。
4、无论它是否是确定的值,但是肯定任何时刻必然都有值且有唯一的值,但是“有值”的含义是比较迷糊的,例如char * p=NULL;p有值NULL,但是从语义上讲它没有“字符串”值。
Q4: 为什么C语言的变量未赋初值,其值就为随机数?
1、首先题目是错误的,问题应该是“初始化”而不是“赋值”。
2、普通数组没有赋初值,默认的数组元素值是随机数,不是0。如果在定义数组时,数据类型前面加上关键字static,数组变成了静态数组;或者把数组定义在函数的外面,成为全局变量数组,这时数组元素的值自动赋值为0。
3、C语言中变量不赋初值是不能”使用“的。这个”使用“是指读取变量的内容。因为,未赋初的变量中存储的数据是个随机值,其值不确定。随机值的产生原因:变量都是存储在内存中的。
4、在C语言中,“初始化”和“赋值”是两个不同的概念。楼主问题中应该是“初始化”而非“赋值”。int a = 0; 在声明一个变量的时候指定变量的值,这叫做初始化;int a; a = 2; 这叫做赋值。
Q5: 在c语言里,全局变量和子函数中的变量。若人为不赋初值。那他们的初值...
不一定。是一个不确定的数。因为没给变量付值,这个变量的地址空间可能已经存储了数据而没有清除。当你个变量付初值后,新付的值会将以前的数据覆盖掉。所以变量如果不付初值,它是一个不确定的数。
没有加static,默认为auto 型,此时,不给初值,变量的初值是随机的。如果加了static不给初值,变量的初值是默认的 0。
这里的随机其实不是指这个变量的值是任意的,只是这个值不是你确定的。
全局变量放在静态存储区,c和c++都是设初值为0,如果是局部变量的话不会赋初值,只是把一块地址给你,至于里面是什么就不知道了。
关于c语言全局变量不定义初值和c语言中的全局变量如果没有指定初值的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。







