>>数组在赋值是不做边界检查吗?

RickeyLv 2002-02-24 07:56:59
如:
int j[2];
j[0]=1;
j[1]=2;
j[2]=3; //应该是数组越界了??!!
j[3]=4; //应该是数组越界了??!!
cout<<j[0]<<"\n"<<j[1]<<"\n"<<j[2]<<"\n"<<j[3]<<"\n";

为什么编译通过,运行结果正确!!???

而初始化数组如int j[2]={1,2,3,4}就编译出错!!??
...全文
118 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
Kusk 2002-02-24
  • 打赏
  • 举报
回复
C/C++都不会作,所以程序效率高,但代价是容易出错。
C#会检查。
golden_alvin 2002-02-24
  • 打赏
  • 举报
回复
C语言没有。但程序员要尽量避免这样的情况,这样的情况会留下缓冲区溢出的漏洞。
Crob 2002-02-24
  • 打赏
  • 举报
回复
数组只是由一个首地址开始的一块连续存放的内存地址,所以不进行边界检查

16,551

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Creator Browser
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧