为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

C++
子衿沉夜 2019-04-02 00:00:35
int n=10;int array[n];这个样子对么?我看书上说定义数组长度时必须是常量或常量表达式,但我用上面的语句写C语言程序也没出错,请问这应该怎么解释和理解?
查看完整描述

2 回答

?
喵喔喔

TA贡献1735条经验 获得超5个赞

这样是非法的。因为n是变量也就是说,n可以为赋任何值,这样就违背了静态空间分配的原则,所以数组长度时必须是常量或常量表达式。

查看完整回答
反对 回复 2019-04-03
?
不负相思意

TA贡献1777条经验 获得超10个赞

只要[ ]中的最后结果是一个确定的值(正整数)就可以。常量或常量表达式的最后结果都是一个确定的值……n虽然是一个变量,但已经赋了一个值10,是确定的,所以也是可以的。如果n未赋值,程序会出错。

查看完整回答
反对 回复 2019-04-03
  • 2 回答
  • 0 关注
  • 758 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信