c++中数组下标越界输出什么_C语言数组的越界和溢出

c++中数组下标越界输出什么_C语言数组的越界和溢出引言最近突然想到当数组array有2个元素,而访问其array[2]时会不会编译错误的问题,答案是编译的时候不报错,只有运行的时候才报错。感悟以下是我测试用的代码,程序可以正常编译,且编译正确,只是在运行的时候出现程序崩溃。chararray[2]={‘2′,’3’};std::cout<<array[2]<<std::endl;//编译正常,运行的时候出现问题基于上述现象,说明程序在编译的时候没有进行下标越界的检查,当一个程序生成可执行文件的时候

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE稳定放心使用

引言

最近突然想到当数组array有2个元素,而访问其array[2]时会不会编译错误的问题,答案是编译的时候不报错,只有运行的时候才报错。

感悟

以下是我测试用的代码,程序可以正常编译,且编译正确,只是在运行的时候出现程序崩溃。

    char array[2] = { 
   '2','3'};
    std::cout<<array[2]<<std::endl;//编译正常,运行的时候出现问题

基于上述现象,说明程序在编译的时候没有进行下标越界的检查,当一个程序生成可执行文件的时候,总共经过四步:预处理,编译。汇编,链接。编译的时候进行代码的优化,语法分析,但未进行下标越界检查。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/186743.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • Scripting.FileSystemObject详解

    Scripting.FileSystemObject详解FSO是FileSystemObject或Scripting.FileSystemObject的缩写,为IIS内置组件,用于操作磁盘、文件夹或文本文件。FSO的对象、方法和属性非常的多,这里用示例的方式列出常用的,注意:《VBScript语言参考》或《JScript语言参考》中的:《FileSystemObject用户指南》和《Scripting运行时库参考》便是微软给出的F…

  • 博弈论分析题_博弈论

    博弈论分析题_博弈论问题描述小明开了一家糖果店。他别出心裁:把水果糖包成4颗一包和7颗一包的两种。糖果不能拆包卖。小朋友来买糖的时候,他就用这两种包装来组合。当然有些糖果数目是无法组合出来的,比如要买10颗糖。你可以用计算机测试一下,在这种包装情况下,最大不能买到的数量是17。大于17的任何数字都可以用4和7组合出来。本题的要求就是在已知两个包装的数量时,求最大不能组合出的数字。输入格式两个正整数,表示每种

    2022年10月15日
  • 30个Python小游戏,上班摸鱼我能玩一天【内附源码】

    30个Python小游戏,上班摸鱼我能玩一天【内附源码】一、接金币(1分)普通难度:❤玩法介绍:吃金币,控制左右键,有手就行。源码分享importosimportcfgimportsysimportpygameimportrandomfrommodulesimport*”’游戏初始化”’definitGame():#初始化pygame,设置展示窗口pygame.init()screen=pygame.display.set_mode(cfg.SCREE…

  • 联手中信银行 物品互赠平台宣布“不卖只送”「建议收藏」

    联手中信银行 物品互赠平台宣布“不卖只送”「建议收藏」联手中信银行 物品互赠平台宣布“不卖只送”

  • tomcat官网如何下载低版本的tomcat

    tomcat官网如何下载低版本的tomcat

  • mongovue mysql_mongo客户端mongoVUE的使用「建议收藏」

    mongovue mysql_mongo客户端mongoVUE的使用「建议收藏」一、先创建一张mongo表,右击已创建的数据库test,点击addcollection..输入CollectionName,点击ok;二、在创建的表中新增列与数据,右击表选择Insertdocument点击Insert,刷新表。三、查询数据右击表格,点击Find1、查询日期的方式需要在{Find}框中写{“endDate”:ISODate(“2013-12-30T16:00:00Z”)}这样才…

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号