const与指针的三种结合
(1)指向常量对象的指针 不能修改被指向对象的值,但是能修改指向的对象,由指向A改为指向B
const char*p="some string"
(2)指向某个对象的常量指针 不能修改指向的对象,但是能修改指向对象的值,指向对象A的值由a改成b
char const *p="some string"
(3)指向常量对象的常量指针 上面说的两种情况都不能修改
const char const *p="some string"
char *pstr[]={"zct1","zct2"};
上面这个数组中各个指针给初始化成“zct1”“zct2”字符串字面值的地址。字符串字面值的类型是“const char数组”
因此将const数组的地址存入非const的指针中,编译器允许这么做只是为了向后兼容现有的代码。
如果是这样使用:*pstr[0]="zct"
则编译不能通过了。