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