| 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 设置为 零会导致该循环陷入一个无限循环。 |
|