lzth.net
当前位置:首页 >> C语言数组没赋值是多少 >>

C语言数组没赋值是多少

1、未初始化,同时数组中的某些元素未被赋值时,其值有两种可能,一种是全局数组,被编译器初始化为0,一种是局部数组,为随机数.在vc6.0的debug版程序中一般是0xcc的值.这个值实际上是int 3断点机器码.2、已初始化,不管是局部

数组没有赋值,如果去引用,会使用到数组内存地址里的值,但是这个值不是你的因为你没有赋值.对于这个问题,编译器不会提示错误,但编写程序的人要知道

未被赋值的是零

int num[10]={1};这样就让没赋值的都是0了int num[10];这样只管分配内存,不管初始化,都是挺大或者挺小的数

不会自动赋值,而是一堆乱七八糟的内存值,打印出来就是乱码

这个当然是要输出11了,因为你的*p的值就是a(也就是a[0])的值,是1,1+10当然是11了.main() { int a[]={1,2,3,4,5,6,7,8,9,10,},*p; p=a; printf("%d\n",*p+10); }

首先纠正一下^_^是ASCII码.未赋值的元素自动补0,不过这只是大多数编译器的做法.有的编译器编译后元素值是不可预料的

全局量,编译系统会自动 初始化,局部量,不会.printf("%ld\n",&x[a]); -- 输出地址,不是输出数值,是你要的吗?自己初始化不难,添一句:for (a=0;a<101;a++) x[a]=0; long 不够,64 位也不够.用 64 位 整型 比 long 好:main(){ _int64 x[101]; int a; for (a=0;a<101;a++) x[a]=0; for(a=1;a<101;a++){ if(a==1) x[a]=1;else x[a]=x[a-1]+x[a-2]; printf("%d: ",a); printf("%I64d\n",x[a]);} }

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

数组没赋值,其值不是0,是不确定,直接用来运算结果不可预知.

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