C/C++允许用赋值后的变量定义数组长度么?

intn=10;intarray[n];这个样子对么?我看书上说定义数组长度时必须是常量或常量表达式,但我用上面的语句写C语言程序也没出错,请问这应该怎么解释和理解?... int n=10;
int array[n];
这个样子对么?我看书上说定义数组长度时必须是常量或常量表达式,但我用上面的语句写C语言程序也没出错,请问这应该怎么解释和理解?
展开
 我来答
逃离土公塘
2015-01-05
知道答主
回答量:6
采纳率:0%
帮助的人:5490
展开全部
只要[ ]中的最后结果是一个确定的值(正整数)就可以。常量或常量表达式的最后结果都是一个确定的值……n虽然是一个变量,但已经赋了一个值10,是确定的,所以也是可以的。如果n未赋值,程序会出错。
伦悦宜yS
2015-01-05 · TA获得超过674个赞
知道小有建树答主
回答量:769
采纳率:100%
帮助的人:374万
展开全部
这样是非法的。因为n是变量也就是说,n可以为赋任何值,这样就违背了静态空间分配的原则,所以数组长度时必须是常量或常量表达式。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
成都IO
推荐于2016-06-06 · TA获得超过117个赞
知道小有建树答主
回答量:153
采纳率:100%
帮助的人:129万
展开全部
理论和实际上数组长度都应该是常量,或者常量表达式,因为这样编译器才能在预编译的时候进行内存大小的分配。不知你所谓的没有出错是什么意思,贴出源码来看看
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式