nnpc.net
当前位置:首页 >> C语言字符数组不赋初值是默认为'\0'还是随机值 >>

C语言字符数组不赋初值是默认为'\0'还是随机值

放在main函数里,默认初值随机数.放在main函数外,默认初值为0.

是的,你可以试一下#include <iostream.h>void main(){char a[2][2]={'1','2'};cout<<a[1][0];}

没有加static,默认为auto 型,此时,不给初值,变量的初值是随机的.如果加了static不给初值,变量的初值是默认的 0.其实不能说不赋初值就不行,对于局部变量,不赋初值的话,其实他里面存的是一个随机的值,谁也不知道他是多少,因

“整形数组赋值的时候 int s[10]={3}; 可以把数组s的所有元素赋值为3”这句话本身就是错误的!

a[]数组放在main函数里面,不会赋初值的.int a[10];main(){printf("%d",a[5]);}这样就可以默认初值为0了.或者在main函数里面会赋初值也行~main(){int a[10]={0};printf("%d",a[5]);}

c语言规定,普通数组没有赋初值,默认的数组元素值是随机数,不是0.如果在定义数组时,数据类型前面加上关键字static,数组变成了静态数组;或者把数组定义在函数的外面,成为全局变量数组,这时数组元素的值自动赋值为0.

数组变量为全局变量,或被部分初始化,均会出现这种情况.C语言中,变量在没有显式初始化时,区分变量类型,有如下几种情况:1 全局变量, 和静态局部变量,未初始化时值默认为0.无论是数组还是变量,都是如此.2 局部变量,初始值为随机值.3 数组类局部变量,当被部分初始化时,未被初始化部分,值默认为0.

由编译器决定的!!很不安全这种!!有的编译器默认值为0 或者null,有的是一个非常大的负值,或者是最小的一个数!一般都会定义的时候初始化下!!

随机的.

不是0,是空值,即:null

网站首页 | 网站地图
All rights reserved Powered by www.nnpc.net
copyright ©right 2010-2021。
内容来自网络,如有侵犯请联系客服。zhit325@qq.com