#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吗???
å¦æä½ ä¸å¯¹æ°ç»è¿è¡åå§åï¼åæ°ç»çå¼æ¯æªç¥æ°å¼ï¼æ ¹æ®ä¸åçè¿è¡ç¯å¢ï¼å
¶æ°å¼ä¹ä¸å
å 为å®ä¹ä¸ä¸ªæ°ç»åï¼ä¸åå§åï¼æ°ç»çå¼å°±æ¯å½åå ååºåçå¼ï¼è¿ä¸ªå¼æ¯ä¸ç¡®å®ç(é常æªåå§åçå ååºåç16è¿å¶æ°å¼ä¸º0xcc)
å¦æè¦å®ä¹ä¸ä¸ªå ¨0çæ°ç»å¯ä»¥
int TCi[W]={0};
int TCo[W]={0};
è¿æ ·ä¼èªå¨å°æ°ç»åºåæ¸ ç©ºä¸º0(åªè¦å®ä¹æ°ç»æ¶ä¸ºæ°ç»èµå¼,åä¼å°è¯¥æ°ç»å ¶ä½æªèµå¼ç空é´èªå¨èµå¼ä¸º0)
å 为å®ä¹ä¸ä¸ªæ°ç»åï¼ä¸åå§åï¼æ°ç»çå¼å°±æ¯å½åå ååºåçå¼ï¼è¿ä¸ªå¼æ¯ä¸ç¡®å®ç(é常æªåå§åçå ååºåç16è¿å¶æ°å¼ä¸º0xcc)
å¦æè¦å®ä¹ä¸ä¸ªå ¨0çæ°ç»å¯ä»¥
int TCi[W]={0};
int TCo[W]={0};
è¿æ ·ä¼èªå¨å°æ°ç»åºåæ¸ ç©ºä¸º0(åªè¦å®ä¹æ°ç»æ¶ä¸ºæ°ç»èµå¼,åä¼å°è¯¥æ°ç»å ¶ä½æªèµå¼ç空é´èªå¨èµå¼ä¸º0)
温馨提示:答案为网友推荐,仅供参考
第1个回答 2013-12-13
这个问题要从计算机系统运行原理说起,简而言之就是,如果数组是局部变量,那么在运行到他这条指令时,会把堆栈内一段空间分配给这个数组来用,那么栈空间内原来数据就自然而然成了数组的元素了,由于堆栈地址存储了上一次用剩下的数值,所以,数组元素也是随机值
第2个回答 2018-10-28
数组的下标与数组元素的数量(n),两者的关系是TCI[n-1],也就是说TCI[0]表示第一个元素,但是当TCI[4]则表示第五个元素,这样已经超出跟系统申请的储存空间,而这超规第五个元素的使用值有可能是先前系统使用过但没有清空的值。有些编译程序甚至会报错。
第3个回答 2013-12-12
内存中的垃圾数据而已,自动赋值,想得倒美,C语言是连初始化都不会自动完成的……追问
你的意思是说,系统随便赋值的,是吧,我要想用要自己初始化!!怎么初始化,要是数组较大
追答懂不懂“根本没有赋值操作”是什么意思