(一)
int *const q = &i; //q是const,q不能再指向别人了
*q = 26; //q所指的那个int i 不是const,OK的
q++; //错,q是const
(二)
const int *p = &i; //这里i依然可以赋值,可以i++;p也可以变,p=&j,也可以,因为p不是const
//不能做的是通过p去改i的值,*p=26是错的.
总结:
判断哪个被const了的标志是const在*的前面还是后面,如果在前面则指针所指的东西不能被修改;如果在后面则是指针不能被修改
关于转换:
这个是一种保证:在函数内部不会去动这个指针所指的值
关于const数组:
const int a[] = {1,2,3,4,5,6};
数组本就是const的指针了,那么再加const,就说明这里每一个,a[0]到a[5]都是const,不能再改变了,这样的话呢,这个数组必须通过这种初始化的形式去进行赋值,不然你写出来之后就没办法去赋值了
关于保护数组值: