课程
/后端开发
/C
/Linux C语言指针与内存
int array[2]; 在课本上就是告诉我们数组大小是2个,array[0]和array[1]。 可是在视频中,array[3]出现了,不管是编译还是运行居然都没问题。为什么? 到底哪里错了?
2015-09-19
源自:Linux C语言指针与内存 5-2
正在回答
那个是老师初期不小心写错了,4-6这一节的视频里面已经红字标出了是笔误了。
编译器没有错。
编译器不会对数组访问越界进行检查,且由于数组与指针的密切关系,这样写也许是程序员有意为之,所以也检查不了。
这就是C语言的特色,也可以说是缺点:它赋予程序员足够的自由,但需要程序员清楚自己在干什么。
海纳川 提问者
举报
指针-C语言的核心,代领大家对c语言有更加深刻的理解
1 回答数组array[2]越界了
2 回答数组长度与数组赋值的问题
2 回答关于数组指针引用问题
1 回答数组指针++
1 回答数组申请?