精英盒子 -> 程序设计 -> 关于数组的一点陷阱  大家都知道 [打印本页]

iol 2011-08-17 17:07

关于数组的一点陷阱  大家都知道

int i, a[10];
for(i = 1; i <= 10; i++)
    a = 0;
这个例子的目的是要将 a中的每个元素都设置为 0,但没有期望的效果。因为 for语句中的比较 i < 10
被替换成了 i <= 10,a 中的一个编号为 10的并不存在的元素被设置为了 0,这样内存中 a后面的一个
字被破坏了。如果编译该程序的编译器按照降序地址为用户变量分配内存,则 a后面就是 i。将 i 设置为
零会导致该循环陷入一个无限循环。

jybox 2011-08-17 18:11




Powered by phpwind v8.7 Code ©2003-2011 phpwind
Time 0.037572 second(s),query:5 Gzip enabled