C语言为什么不做数组下标越界检查
2009-11-14 17:18
375 查看
1、为了提高运行效率,不检查数组下表越界,程序就可以跑得快。因为C语言并不是一个快速开发语言,它要求开发人员保证所有逻辑的正确性。所以至少到目前为止,C语言是所有高级语言中速度最快,效率最高的。几乎所有对性能有苛刻要求的场合都使用C语言。
2、不检查下标是为了给程序员更大的空间,也为指针操作带来更多的方便。如果有这个检查的话指针的功能将会大大被削弱,C的数组标识符,里面并没有包含该数组长度的信息,只包含地址信息,所以语言本身无法检查,只能通过编译器检查,而早期的C语言编译器也不对数组越界进行检查,只能由程序员自己检查确保。以及在早期的CRT函数中也不对字符串指针或数组进行越界检查,都是要求程序员确保空间足够,因此也才也才有了在VS2005之后微软提供的安全的CRT函数版本。
2、不检查下标是为了给程序员更大的空间,也为指针操作带来更多的方便。如果有这个检查的话指针的功能将会大大被削弱,C的数组标识符,里面并没有包含该数组长度的信息,只包含地址信息,所以语言本身无法检查,只能通过编译器检查,而早期的C语言编译器也不对数组越界进行检查,只能由程序员自己检查确保。以及在早期的CRT函数中也不对字符串指针或数组进行越界检查,都是要求程序员确保空间足够,因此也才也才有了在VS2005之后微软提供的安全的CRT函数版本。
相关文章推荐
- C语言为什么不做数组下标越界检查
- C-基础:C语言为什么不做数组下标越界检查
- C语言的编译器为什么不检查数组下标越界
- c语言:为什么不进行下标检查,总结下指针和数组
- C语言为什么不执行数组下标有效性检查?
- 为什么C语言不检查数组的下标?
- C语言不做数组下标安全性检查
- 为什么C语言检查数组访问越界会这么难?
- 为什么c语言从main函数开始
- 为什么要学习C语言?
- 为什么学C语言
- C语言为什么被const声明的变量不是一个常量表达式
- C++函数重载实现的原理以及为什么在C++中调用C语言编译的函数时要加上extern "C"声明
- C语言中用scanf函数输入字符时,为什么要在输入控制符%c前面加空格?
- 数组下标为负数出现的问题(关于数组下标越界的检查)
- 一个简单例子说明为什么C语言在2013年仍很重要
- C语言 输入数字的容错性检查
- 教你检查为什么你的网站流失了那么多搜索流量
- 为什么每个程序员都应该学习C语言?
- 为什么c语言中字符数组可以越界