用关键字const修饰一个指针时,根据其位置的不同有不同的含义。

例如:

char str1[] = "Point to constant string";

const char *ptr = str1;

表示定义了一个指针ptr,它指向一个常数字符串。因此,运算

*ptr = 'Q';

是非法的, 因为该字符串为常量。

但指针ptr本身为变量,可以修改。例如

ptr ++;

合法。

而 char str2[] = "A constant pointer";

    char *const qtr = str2;

定义了一个常量指针qtr。在这种情况下,指针本身不能修改,但其指向

的对象并非常量,可以修改。