C中如何定义空数组,为什么我定义的空数组呗自动赋值?
#defineW4代码:intTCi[W],TCo[W];调试时发现当运行完intTCi[W],TCo[W];这句时TCI[0]=0TCI[1]=0TCI[2]=-105...
#define W 4
代码: int TCi[W],TCo[W];
调试时发现
当运行完int TCi[W],TCo[W];这句时
TCI[0]=0
TCI[1]=0
TCI[2]=-10576
TCI[3]=32767
TCI[4]=1598441028
为什么出现这种情况,空数组不是全0吗??? 展开
代码: int TCi[W],TCo[W];
调试时发现
当运行完int TCi[W],TCo[W];这句时
TCI[0]=0
TCI[1]=0
TCI[2]=-10576
TCI[3]=32767
TCI[4]=1598441028
为什么出现这种情况,空数组不是全0吗??? 展开
4个回答
2013-12-13
展开全部
这个问题要从计算机系统运行原理说起,简而言之就是,如果数组是局部变量,那么在运行到他这条指令时,会把堆栈内一段空间分配给这个数组来用,那么栈空间内原来数据就自然而然成了数组的元素了,由于堆栈地址存储了上一次用剩下的数值,所以,数组元素也是随机值
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2018-10-28
展开全部
数组的下标与数组元素的数量(n),两者的关系是TCI[n-1],也就是说TCI[0]表示第一个元素,但是当TCI[4]则表示第五个元素,这样已经超出跟系统申请的储存空间,而这超规第五个元素的使用值有可能是先前系统使用过但没有清空的值。有些编译程序甚至会报错。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2013-12-12
展开全部
内存中的垃圾数据而已,自动赋值,想得倒美,C语言是连初始化都不会自动完成的……
追问
你的意思是说,系统随便赋值的,是吧,我要想用要自己初始化!!怎么初始化,要是数组较大
追答
懂不懂“根本没有赋值操作”是什么意思
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询