我最近开始用C编程,我注意到,有时,当我不小心将数组指向'-1'时,数组将转到最后一个元素。为什么会这样?
编辑:作为一个例子,我正在构建一个森林火灾模型,有时,当一棵燃烧的树木在森林的边缘时,新的燃烧的树木会在森林的另一边突然出现,而不会抛出任何错误答案 0 :(得分:6)
这是未定义的行为 允许编译器生成demons fly out of your nose。
实际上,这通常会在数组之前访问内存,这可能会崩溃。
答案 1 :(得分:2)
他们没有。只是C不会检查你是否正在走出数组;当你这样做时,结果是不可预测的。看看this site,查看链接的教程(旧的,但很好)。还有一个指向C中指针和数组教程的链接。
C是一种专为最大性能而设计的语言,因此假定程序员确切知道她在做什么。没有训练轮,没有安全网。当你习惯了这一点时解放;到那时为止。坚持下去,了解正在发生的事情,并享受乐趣。