【发布时间】:2021-09-18 03:21:08
【问题描述】:
我想声明一个array[x],但我希望我的数组大小在每次新程序启动时都可以更改。我的第一个想法是int x; scanf("%d",&x); 在我声明我的array[x] 之前有一行,但这不起作用,因为 x 必须是一个 const int。
我的下一个想法是简单地创建一个const int x; scanf("%d", &x);,但这次尝试也失败了,因为
array[x] 或者说必须先初始化 const int x 才能启动程序。
我的最后一个想法是初始化 x const int x = 1; 和下一次 scanf("%d", &x);
在这个尝试中,程序没有崩溃,但它没有用。在我启动程序的那一刻,我的array[x] 被我的“旧”x 初始化。所以我改变的 x 没有影响。
你有什么想法可以解决这个小问题,或者在我用 C++ 启动程序后无法初始化 const int 或整体 const 类型?
【问题讨论】:
-
阅读
x。使用您想要的x值输出源代码。编译生成的代码。从生成的代码运行程序。或者,使用std::vector。 -
看起来你想要的是一个常量表达式,这不是你在运行时可以得到的。如果目的是将其用作数组维度,则可以使用
std::vector。
标签: c++ arrays types constants