二级C语言疑问

(30)下列叙述中错误的是()。A)对于double类型数组,不可以直接用数组名对数组进行整体输入或输出B)数组名代表的是数组所占存储区的首地址,其值不可改变C)在程序执... (30)下列叙述中错误的是( )。
A)对于double 类型数组,不可以直接用数组名对数组进行整体输入或输出
B)数组名代表的是数组所占存储区的首地址,其值不可改变
C)在程序执行中,数组元素的下标超出所定义的下标范围时,系统将给出“下标越
界”的出错信息
D)可以通过赋初值的方式确定数组元素的个数
答案 C

疑问:我们经常定义数组时 比如:int a[]{0,1,2,3,4};难道不是通过赋初值的方式确定数组元素的个数吗?
展开
 我来答
oolgloo
2011-05-25 · TA获得超过2636个赞
知道小有建树答主
回答量:604
采纳率:0%
帮助的人:657万
展开全部
分析:D是正确的,int a[] = {0,1,2,3,4},确实能确定数组元素个数为5个。

但是在程序执行过程中,如果数组下标越界,比如上面我们访问a[5],程序还是可以执行的!但这时a[5]作为一个指针,指向了a[4]的下一个偏移地址,其值是不可预见的,可能发生未知的危险!但程序不会提醒,所以比较不安全!
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式