相关疑难解决方法(0)

为什么使用const不允许变量大小的对象初始化

这是错误的,因为可能无法初始化可变大小的对象

int size = 4;
int array[size] = {1};
Run Code Online (Sandbox Code Playgroud)

size是一个变量,但编译器在创建时是否知道它的值array(size在编译时没有为初始值4分配?)?让我们size改变之后,为什么会出现这个问题呢?我的意思是,这些是连续的指令,什么可能改变size数组声明之前的值?

第二个问题:为什么不允许这样做:

const int size = 4;
int array[size] = {1};
Run Code Online (Sandbox Code Playgroud)

我宣称size是一个常数.我知道const!=只读,并且声明size为宏是正确的方法.但是,如果我保证编译器使用const我不会改变它的值size,为什么不允许?

c compiler-construction const

4
推荐指数
1
解决办法
285
查看次数

标签 统计

c ×1

compiler-construction ×1

const ×1