学习算法的杨 2022-05-22 18:08 采纳率: 88.9%
浏览 23
已结题

关于数组的问题(C语言)

假定一个数组arr【】={0};然后手动输入一个数x=5,
for(i=0;i<x;i++)
scanf("%d,&arr[i]);//手动输入五个数
为什么arr【】的方括号里不写数字,当打印arr【0】时会出现程序卡死,但是如果方括号里有数字就会正常的情况呢?

  • 写回答

3条回答 默认 最新

  • 树下等苹果 2022-05-22 18:36
    关注

    定义数组时要同时定义数组长度,有两种形式:
    (1)只写数组长度,如:int arr[10]。定义一个数组长度为10的数组
    (2)不写数组长度,但初始化数组元素,如:int arr[]={1,2,3,4}。那么这个数组的长度就为数组元素个数4。
    arr[]={0}表示只有一个数组元素,即数组长度为1,你输入5个数,已经超过数组长度了,会出现数组越界情况。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

问题事件

  • 系统已结题 5月30日
  • 已采纳回答 5月22日
  • 创建了问题 5月22日

悬赏问题

  • ¥20 WPF MVVM模式 handycontrol 框架, hc:SearchBar 控件 Text="{Binding NavMenusKeyWords}" 绑定取不到值
  • ¥15 需要手写数字信号处理Dsp三个简单题 不用太复杂
  • ¥15 数字信号处理考试111
  • ¥100 关于#audobe audition#的问题,如何解决?
  • ¥15 allegro17.2生成bom表是空白的
  • ¥15 请问一下怎么打通CAN通讯
  • ¥20 如何在 rocky9.4 部署 CDH6.3.2?
  • ¥35 navicat将excel中的数据导入mysql出错
  • ¥15 rt-thread线程切换的问题
  • ¥15 高通uboot 打印ubi init err 22