//初始化两个非常量 int i1 = 20; int i2 = 30; //初始化一个顶层const指针,这个操作意味着指针本身的值是一个常量,其本身是不可以改变的,而指针所指的值是一个非常量是可以改变的 int *const p = &i1; p = &i2; //错误。指针p本身是一个常量,是不可以改变的 *p = i2; //正确。指针所指的值并不是一个常量,是可以改变的
low-level const 的一些演示
1 2 3 4 5 6 7
//初始化两个非常量 int i1 = 20; int i2 = 30; //初始化一个底层const指针,这个操作意味着这个指针指向一个常量,不可以通过该指针去改变指针所指的对象,但指针本身是可以更改的 constint *p = &i1; *p = i2; //错误。指针p所指的是一个常量,不可以通过指针去修改其指向的对象 p = &i2; //正确。指针本身不是常量,可以修改指针本身