const

通常使用 const 修饰符来定义常量。

常量:共享一块内存空间,即使多处使用,根据 const 修饰的位置来确定是否能修改。在编译阶段会执行类型检查。

常量的四种写法:

static const 数据类型 * 常量名 = 值; // 局部常量:用 static 修饰后,不能提供外界访问
const 数据类型 * 常量名 = 值; // 全局常量:不论定义在哪个文件夹中,外部都能访问
数据类型 const * 常量名 = 值;
数据类型 * const 常量名 = 值;

const 修饰位置不同的区别?
实例:

const int *p = NULL;
int const *p = NULL;
int* const p = NULL;

解析:

*p 不能被修改,p 能被修改;

int a = 10;
p = &a;    // 正确
*p = 10; // 报错

*p 不能被修改,p 能被修改;

int b = 20;
p = &b;    // 正确
*p = 20; // 报错

*p 能被修改,p 不能被修改;

int a = 10;
p = &a;    // 报错
*p = 10; // 正确

注意:

1 和 2 其实没什么区别。
oc 中字符串的值是在常量区,3 中两种都报错。

结论:

const 右边的总不能被修改。

Published by

风君子

独自遨游何稽首 揭天掀地慰生平

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注