知识点1 const是只读的意思(也就是只用而不能通过用const的变量对他进行改变)
例子1
const int max = 100; // 正确:max 被初始化为 100,之后不可变
max = 200; // 错误:编译报错,不能给 const 变量赋值
const int i; // 危险:未初始化的 const 变量,之后也无法赋值,通常无用且可能导致错误。
例子2
int a = 10, b = 20;
const int *p = &a; // p 指向 a
// *p = 30; // 错误!不能通过 p 修改 a 的值
a = 30; // 正确!a 本身不是 const,可以直接改
printf("%d\n", *p); // 输出 30,p 仍然指向 a,值已变
p = &b; // 正确!p 本身可以指向另一个地址
// *p = 40; // 错误!仍然不能通过 p 修改 b
知识点2 const写在类型的前面和后面都一样(指的是不带多个*这个符号的那种)
例子1
const int a; / 和 / int const a;//是同一个意思。
const double a; / 和 / double const a; // 也是同一个意思。
知识点3 const能用到的不仅仅是普通的变量,还能用到指针上
例子1
int a = 10, b = 20;
int * const p = &a; // p 必须初始化,且永远指向 a
*p = 30; // 正确!可以修改 a 的值.
printf("%d\n", a); // 输出 30.
// p = &b; // 错误!p 本身不能被修改,不能再指向 b.