关于数组越界
如果a[10] 就是a的取值范围是 a>=0 a<10 的范围
如果我取值a=10的话,那么越界了 那么越界的这个值 是什么 是0 还是随机
为什么会变成了死循环
书上说: C标准中 可以越界 是有数值的 而且是存在的 但是 不可以调用
这本书是 C陷阱与缺陷
[解决办法]
是随机的,当时a[10]的指针处是什么值就是是什么
[解决办法]
楼主好像没有明白什么是数组的下标,什么是元素?
[解决办法]
随机的,a[10]位置的数值因为不确定,不确定的值导致的后果也是不确定的。
[解决办法]
VC调试时按Alt+8,TC或BC用TD调试,打开汇编窗口看每句C对应的汇编不就啥都明白了吗。
(Linux或Unix下应该也可以在用GDB调试时,看每句C对应的汇编。)
想要从本质上理解C指针,必须学习汇编以及C和汇编的对应关系。
从汇编的角度理解和学习C语言的指针,原本看似复杂的东西就会变得非常简单!
计算机组成原理→DOS命令→汇编语言→C语言(不包括C++)、代码书写规范→数据结构、编译原理、操作系统→计算机网络、数据库原理、正则表达式→其它语言(包括C++)、架构……
[解决办法]
a[10]是一个随机值,也有可能产生不确定的后果。
[解决办法]
a[10]这个地址那里放的啥~ 用gdb调试一下..
print *(a+10) 看到是啥值. 自然就明白了..
[解决办法]
随机的。可能是某个重要的数据