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

关于数组的问题(C语言)
- 写回答
- 好问题 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无用