用关键字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。在这种情况下,指针本身不能修改,但其指向
的对象并非常量,可以修改。
原文地址:http://blog.csdn.net/wangjiaweiwei/article/details/42499375