这句话是错的。C和C++没有下标越界提示。C和C++不会在运行时检查下标是否越界,要不然每次访问数组都检查,会严重影响运行速度。读取访问一般不会出错,只是结果不可预知。写入就比较危险,有时会提示不可写入,大多数情况是会把后续内容修改了,后果会很奇怪。
数组下标越界了,比如,int[] a=new int[5],然后你写a[5]=10,因为a数组最后一个是a[4],下标超出范围了,就报错。C++是一种面向对象的计算机程序设计语言,由美国AT&T贝尔实验室的本贾尼·斯特劳斯特卢普博士在20世纪80年代初期发明并实现,最初它被称作“C with Classes”(包含类的C语言)。...
但是如果你的数组的越界只是访问到了原本就没有被分配的内存,那么就不会出错,但是不能保证这么下去一直不会错。
第二:数组在使用时,下标范围是从 0 到 (数组长度-1),否则越界(不过需要补充一点,C和C++对数组没有下标检查,它实质上是以指针计算的方式来访问数组对应的位置,所以C和C++并无下标越界的概念,不论是编译还是运行,在下标越界访问时都不会有错误或异常,但运行结果自负)第一题选D 整型表达式不...
C++中,并不会自动检查下标越界问题。第一个程序中,a[10]=a[9],改变了不属于数组空间的内存单元。这个错误不会在编译和连接中反应出来,而是会一直运行下去,知道出现结果不正确。严重时可能导致死机。第二个程序也是同样道理,数组a只申请了三个整形的内存空间,越界的部分修改了内存中原来的数据。