知识点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.