对指针来说,可以指定指针本身为const,也可以指定指针所指的数据为const,或二者同时指定为const,还有,两者都不指定为const:

char *p = "hello"; // 非const指针,// 非const数据

const char *p = "hello"; // 非const指针,// const数据

char * const p = "hello"; // const指针,// 非const数据

const char * const p = "hello"; // const指针,// const数据

语法并非看起来那么变化多端。一般来说,以*为界限,如果const出现在*的左边,指针指向的数据为常量;如果const出现在*的右边,指针本身为常量;如果const在*的两边都出现,二者都是常量。

****************************************************************************************************************