天天看點

C++筆記:關于常量指針,指向常量的指針,指針函數,函數指針

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

繼續閱讀