指针包含的地址是常量,不能修改,能修改指针指向的内容

int daysInMonth = 30;
int* const pDaysInMonth = &daysInMonth;
 *pDaysInMonth = 31; // OK! Data pointed to can be changed 
int daysInLunarMonth = 28; 
pDaysInMonth = &daysInLunarMonth; // Not OK! Cannot change address!

指针指向的数据为常量,不能修改,但可以修改指针包含的地址,即指针可以指向其他地方

int hoursInDay = 24; 
const int* pointsToInt = &hoursInDay; 
int monthsInYear = 12; 
pointsToInt = &monthsInYear; // OK! 
*pointsToInt = 13; // Not OK! Cannot change data being pointed to 
int* newPointer = pointsToInt; // Not OK! Cannot assign const to non-const

指针包含的地址以及它指向的值都是常量,不能修改(这种组合严格)

int hoursInDay = 24; 
const int* const pHoursInDay = &hoursInDay;
 *pHoursInDay = 25; // Not OK! Cannot change data being pointed to 
int daysInMonth = 30; 
pHoursInDay = &daysInMonth; // Not OK! Cannot change address