请问这个C语言的题目选什么?要有解释

1.在C语言中,一维数组的定义方式为:类型说明符数组名【】A)[常量表达式]B)[整型表达式]C)[整型常量]或[整型表达式]D)[整型变量]如果选A的话,为什么C不行,... 1. 在C语言中,一维数组的定义方式为:
类型说明符 数组名【 】
A) [常量表达式] B) [整型表达式]
C) [整型常量]或[整型表达式] D) [整型变量]
如果选A的话,为什么C不行,定义成int a[10*2】;也是可以编译的,这个就是整型表达式来的。求解
展开
 我来答
jg121125
2012-05-05
知道答主
回答量:31
采纳率:0%
帮助的人:15.1万
展开全部
A,编译时,数组大小要确定。
追问
答案选A,我觉得应该是C才对。具体的原因如下:
1.常量表达式是指由常量和运算符所组成的表达式,这里的常量可以是int ,float等类型,而数组的长度应该只能是整型的才对。而定义成int a[3.5];,这里的定义符合了常量表达式的要求,但是却是非法的。因此我觉得应该限定成整型表达式才对。
2.如果定义数组如下:int a[2+3];合法的,而且在编绎时都不会有出错提醒,但是这里的2+3却是整型表达式,当然也属于常量表达式。
追答
数组的大小类型size_t是无符号整数
2+3 是整形表达式?
TONY19971016
2012-05-05
知道答主
回答量:88
采纳率:100%
帮助的人:28.4万
展开全部
选A才对吧。C的话如果整型常量是负数呢?整型表达式是表达式由整型数据表示,char也是属于整形数据的一种的。如果定义成a[3.4]的话,就相当于a[(int)3.4]吧。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友c7f9b65
2012-05-05
知道答主
回答量:19
采纳率:0%
帮助的人:5万
展开全部
你把整型表达式的范围缩小了!假如N是是整型的那么2*N也应该是整型的,但是C语言中是不能:类型说明符 数组名【2N】定义数组的!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2012-05-05
展开全部
选c,A来个小数直接挂掉,bd是c的一部分,很显然选c
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式