gpt4 book ai didi

c++ - 为什么用作数组大小的函数的常量参数会出错?

转载 作者:太空狗 更新时间:2023-10-29 23:37:12 25 4
gpt4 key购买 nike

当我在 C++ 中使用函数的常量参数作为数组大小时,出现“需要常量表达式”错误:
enter image description here

因此编译器不会将 m 视为常量对象,这意味着我可以在函数内部更改 m 的值,但是当我尝试递增该值时m 给出“无法修改 const 对象”错误:
enter image description here

对我来说真的很暧昧。任何人都可以解释我错了吗?

最佳答案

const 实际上并不意味着“这个值是常量”,而是“你不能改变这个值”。

至此,为什么后面的代码编译不通过,而前者的代码编译不通过,应该就很清楚了。即使你给它一个默认值 5,也不能保证它是 5,所以你没有常量,所以你不能创建一个数组.但类型仍然是 const,因此您无法更改它。

也就是说,从 C99 开始,您可以拥有可变长度数组,所以这实际上没问题。 (在 C++ 中不行。)您的编译器似乎太旧,无法支持 C99。 (我强烈推荐使用最新的 GCC。)

关于c++ - 为什么用作数组大小的函数的常量参数会出错?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9051600/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com