55问答网
所有问题
关于C语言,为什么编译器不对数组的越界进行检查?
如题所述
举报该问题
推荐答案 2011-03-13
为了提高代码效率。
C语言跟Java不同,C的内存管理交由用户处理,Java是语言自己处理。但是,如果不是核心系统开发,一般体现不出两者的内存处理的代码之间效率差别。
温馨提示:答案为网友推荐,仅供参考
当前网址:
http://55.wendadaohang.com/zd/Fe888RIL8.html
相似回答
c语言
问题 帮帮忙
答:
a[3][2]指3行2列的
数组,
没错啊 没规定后一个数要比前一个大。a[3][2]的行下标是0~2,列为0~1
c语言超出数组长度赋值
答:
因为 a 你定义的就是一个三个int长度的
数组,
你
检查
a的长度,系统告诉你的是 a 这个类型的长度,就如你获取int类型的长度。至于
越界
的问题
,C语言
是不会检查你下标是否越界的。数组在内存中是一段连续的空间,当你使用下标 0 访问,访问到的是第一个元素,使用 1 访问得到第二个,如此这般。你定...
C语言为什么不检查数组越界
答:
一方面是为了运行效率
。另外最主要,C语言的特征就是直接操作地址,自由度高,指针就是为此存在,
检查越界会限制程序员的自由度
。所以自由是要付出代价的。
C语言
变量生命周期问题设计
数组越界
答:
C语言不检查数组越界和指针,这个程序员负责的事情,编译时只检查语法有没有错误
。而且并不是一越界就异常的,异常可能会在将来发生,或者这次越界没有破坏关键数据。你要先打印数据,再增加global,否则就会输出下一个值,但是你却没有赋值
C 语言
中
编译器为何不
检测
数组
下标
越界
问题
答:
具体:最早的
C编译器
并不检查下标,而最新的编译器依然不对它
进行检查
。这项任务之所以很困难,是因为下标引用可以作为任意的指针,而不仅仅是
数组
名。作用于指针的下标引用的有效性既依赖于该指针当时恰好指向什么内容,也依赖于下标的值。结果
,C的
下标检查所涉及的开销比你开始想象的要多。编译器必须在...
大家正在搜
c语言数组越界怎么处理
数组越界会出现什么
数组越界什么意思
数组越界有什么后果
什么是数组下标越界
数组越界怎么处理
怎么防止数组越界
数组越界怎么判断
数组越界