1.常量指針
1)本質是指針,隻不過指針本身的值是個常量
2)注意:常量指針必須初始化,一旦初始化其值就不會再改變。
3)按照從左往右的順序讀,就是 const+指針(int *),e.g:
const int * p;
4)常量指針可以指向常量對象,也可以指向非常量對象
5指針的指向可以修改,但是指針指向的值不可以改變
2.指針常量
1)本質是指針,隻不過指向的對象是個常量
2)普通的指針不可以指向常量對象
3)其實指向常量的指針也是可以指向非常量對象的
4)按照從左往右的順序讀,就是指針+const,e.g:
int * const p;
5)指針的指向不可以修改,但是指針指向的值可以修改
6)e.g:
const int num1=18;
int *p1=&num1;//error,普通的指針不可以指向常量對象
const int num2=23;
const int *p2=&num2;//right,指向的對象是個常量
int num3=1830;
const int*p3=&num3; //right,可以指向非常量對象
3.指針函數
1)本質是函數,隻不過傳回值是一個指針
2)按照從右到左的順序,e.g:
聲明一個名為p的函數,該函數的參數是兩個int型的引用,傳回值類型是int*
4.函數指針
1)本質是指針,隻不過指向的對象是函數
2)按照從右到左的順序,e.g:
有括号先讀括号,明顯括号内是一個指針,p指向一個函數,該函數有兩個參數,都是int型的引用,傳回值是類型是int