如果我创建一个全局常量值数组,例如
const int SOME_LIST[SOME_LIST_SIZE] = {2, 3, 5, 7, 11};
是否可以以任何方式修改 SOME_LIST?
我怎样才能写出这样的 SOME_LIST 指向一个 const 内存位置,并且本身就是一个 const 指针(即不能指向其他地方)?
如果我创建一个全局常量值数组,例如
const int SOME_LIST[SOME_LIST_SIZE] = {2, 3, 5, 7, 11};
是否可以以任何方式修改 SOME_LIST?
我怎样才能写出这样的 SOME_LIST 指向一个 const 内存位置,并且本身就是一个 const 指针(即不能指向其他地方)?
有 3 个主要的指针示例涉及“const”关键字。(见此链接)
首先:声明一个指向常量变量的指针。指针可以移动,并改变它所指向的东西,但不能修改变量。
const int* p_int;
其次:声明一个指向变量的“不可移动”指针。指针是“固定的”,但可以修改数据。必须声明并分配此指针,否则它可能指向 NULL,并固定在那里。
int my_int = 100;
int* const constant_p_int = &my_int;
第三:声明一个指向常量数据的不可移动指针。
const int my_constant_int = 100; (OR "int const my_constant_int = 100;")
const int* const constant_p_int = &my_constant_int;
你也可以使用这个。
int const * const constant_p_int = &my_constant_int;
另一个很好的参考请看这里。我希望这会有所帮助,虽然在写这篇文章时我意识到你的问题已经得到了回答......
你拥有它的方式是正确的。
此外,您不需要提供SOME_LIST_SIZE
; C++ 会从初始化程序中自动计算出来。