??????? 在進行聲明指針時,可以在類型前或后使用關鍵字const,也可在兩個位置都使用。? 下面都是合法的聲明,但是含義大不同:
const int * pOne;????//指向整形常量?的指針,它指向的值不能修改
int * const pTwo;????//指向整形的常量指針?,它不能在指向別的變量,但指向(變量)的值可以修改。?
const int *const pThree;? //指向整形常量?的常量指針?。它既不能再指向別的常量,指向的值也不能修改。
??????? 理解這些聲明的技巧在于,查看關鍵字const右邊來確定什么被聲明為常量?,如果該關鍵字的右邊是類型,則值是常量;如果關鍵字的右邊是指針變量,則指針本身是常量。下面的代碼有助于說明這一點:
const int *p1; //the int pointed to is constantint * const p2; // p2 is constant, it can't point to anything else