常量指標 指標常量 函式指標 指標函式學習筆記

2021-10-23 17:36:36 字數 1561 閱讀 5340

#include

using namespace std;

/*任何變數都需要指定資料型別,因為變數都要存在記憶體裡面,那就牽涉到怎麼存的問題,資料型別就規定了變數怎麼存。

所以變數的定義形式是:資料型別   變數名

對於指標變數,它的資料型別是固定的,因為指標變數裝的是乙個位址,如果是32位系統,乙個位址需要四個位元組裝,並且位址一定是無符號整形,所以指標變數本身的資料類

型是確定的,不需要專門指定,但是指標變數指向的內容的資料型別是多種多樣的。所以例如  int  *p     修飾指標變數的int不是說p是int型別,p應該是unsigned int 型,

而是說p指向的內容是int型。

1、指標是個變數,它本身需要乙個位置存放,存放它的位置的位址的標號就是這個指標變數,這個變數裡面的內容是某個變數的位址。

2、變數修飾符的優先順序和結合方向:下面的例子中,結合順序都是以變數為核心從右到左邊,例如int  *p; int*  p;p都是首先和*結合,表明p是個指標變數。

3、指標的定義: 基本型別  *指標變數名;   int   *a;//基本型別是說a指向的記憶體空間所裝的資料是int型

4、常量指標:是個指標,即是個變數,但是該指標指向的內容是個常量;const int *i;從結合方向上去認識,i表明是個變數,*i表明i是指標變數,

int *i表明指標指向的內容是整形,const int *i表明i還是個常量。

5、指標常量:是乙個被const修飾的指標變數, 這個變數被放入唯讀區。

宣告指標常量的方法:先宣告乙個指標   int* p

int* const i;從結合方向上看,i表明是個變數,但是const i把這個變數限制成了乙個常量,然後這個常量又被int*修飾,進一步把這個常量變成了

不可變動的位址。

看一下指標常量是如何從產量演變過來的

定義乙個常變數: const int a = 11;

定義乙個指標變數常變數   const  int *p

6、指標函式:返回值是指標的函式,任何函式都有返回值,這個值可以值普通變數也可以是指標變數。

int* fn(int);

7、函式指標:函式指標變數的簡稱

如果在程式中定義了乙個函式,編譯後,這個函式被作業系統分配了一段儲存空間,這段儲存空間的首位址就是這個函式的位址。而且函式名字表示的就是這個位址。

既然是位址,那麼我們就可以定義乙個指標變數來存放,這個指標變數就叫做函式的指標變數,簡稱函式指標。

函式指標和普通指標的定義不一樣,有他的特殊之處。

int fn;定義乙個普通的變數

int *fn;把上面的普通變數改寫成普通指標變數

int  (*fn)(int)    把上面的普通指標變數改寫成函式指標變數

從優先順序和結合順序來看,由於有括號,所以首先要看(*fn),表明fn是個指標變數,然後看(*fn)(int) ,表明這個指標指向函式的首位址

*///1、指標是個變數,它本身需要乙個位置存放,存放它的位置的位址的標號就是這個指標變數,這個變數裡面的內容是某個變數的位址。

void main01()

void main()

void main7()

指標函式,指標常量,函式指標,常量指標

指標函式 指標函式是指函式的返回值型別是乙個指標型別,即本質是乙個函式。如 float find float pionter 4 int n 指標常量 指標常量是指標所指向的位置不能改變,即指標本身是乙個常量。如 int const p a 指標就是位址,也就是位址不能改變,如上 int const...

指標函式和函式指標,指標常量和常量指標

1 指標函式 指標函式是指帶指標的函式,本質上是乙個函式。函式的返回型別是某一型別的指標。定義格式 型別識別符號 函式名 參數列 例如 int fun x,y 2 函式指標 函式指標是指向函式的指標變數,本質上是乙個指標變數。定義格式 型別識別符號 函式名 參數列 3 指標常量 指標常量的本質是乙個...

常量指標 指標常量

int const p 表示p是乙個指向常量的指標,這種情況下,編譯器會講p所指向的物件當作常量處理,即便不是常量。所以無法改變其指向的物件的值,但是指標本身的值即其指向可以發生改變。int const p 表示指標是乙個常量,其本身值 即其指向 不可以修改,但是其指向的值 無論是常量還是變數 可以...