前言
const 限定符,它把一个对象转换成一个常量,而常量不能修改。
一、 const char *p;
const修饰*p,所以 *p在等号左边的操作都是不合法的,因为 *p不可变,此时不能用 *p来修改(eg: *p = 10; 不合法),但是p可变,p可以转向。
二、 char * const p;
const修饰p,所以 p在等号左边的操作都是不合法的,因为 p不可变,此时不能用 p来修改(eg: p = &a; 不合法),p不能转向,但 *p可变,此时允许 *p来修改其值。
三、 const char * const p;
const修饰*p和p,所以 *p和p在等号左边的操作都是不合法的,因为 *p不可变,此时不能用 *p来修改,而且p也不可变,不可以转向。(eg: *p =10;和 p = &a;都不合法)
总结
const 限定符,它把一个对象转换成一个常量,而常量不能修改。所以,根据const修饰的对象,可以确定对象是否可以修改。