Imr*_*ana 2 c++ arrays function
当我在C++中使用函数的常量参数作为数组大小时,它给出了"需要常量表达式"错误:

所以编译器不考虑m作为常量对象,这意味着我可以更改m函数内部的值,但是当我尝试增加m它的值时,给出"无法修改const对象"错误:

这对我来说真的很模糊.任何人都可以解释我的错误吗?
const 实际上并不意味着"这个值是常数",但是,"你不能改变这个值."
有了这个,应该清楚为什么后面的代码无法编译,但前者不能.即使你给它一个默认值5,也不保证它是五,所以你没有常量,所以你不能创建一个数组.但是类型仍然存在const,所以你无法改变它.
也就是说,因为C99你可以拥有可变长度数组,所以这实际上很好.(在C++中它是不行的.)你的编译器似乎太旧了,无法支持C99.(我强烈推荐使用最新的GCC.)
| 归档时间: |
|
| 查看次数: |
1950 次 |
| 最近记录: |