C C 函式指標,指標函式的用法,用處

2021-06-21 08:14:03 字數 1780 閱讀 8969

先看函式指標

int func2(int x);    /* 宣告乙個函式 */

int (*q2) (int x);   /* 宣告乙個函式指標 */

q2=func2;        /* 將func函式的首位址賦給指標f */

int c=(*q2)(3);   //3可以為任意實參

上面4句基本說明了函式指標的用法:

函式指標是指向函式的指標,確切的說,是指向特定型別函式的指標(函式與函式指標 型別要匹配)

函式指標用來儲存函式首位址,即可以通過該指標訪問函式。函式指標

相當於取別名。

函式指標可以指向一類函式,而不是乙個函式,即

可以重新賦值。(見例2)

函式指標不難,只要記住上面黑體字就差不多了,附上兩個簡單的例子

例1:

#includeint max(int x,int y)

void main()

例2:

#includevoid filefunc()

void editfunc()

void main()

再看指標函式:

int *func(int x);/* 宣告乙個指標函式 */

int *q; /* 宣告乙個指標 */

q=func(3);//3可以為任意實參

上面三句基本說明了指標函式:

指標函式是返回值為指標的函式,所以我們在main()中呼叫它時可以用乙個同型別的指標來接收。

指標函式可以用來解決眾多問題,如返回多個值的問題。(見"函式返回多個值的方法"那篇文章)

指標函式比經常更經常用到,一定要學會用

指標函式邏輯簡單,結構清新,功能強大,***,效率高,堪比極品中的鳳姐,勝過。。。(求下聯),反正不學會真是損失。

例3:其實跟函式指標無關,考慮

float (*p)[4]; // pointer to an array of 4 floats

float *p[4];   // an array with 4 pointers pointed to float

#includeusing namespace std;

int main()

,,};//定義成績陣列,第一維可以為變數

float *pf=null;//定義乙個指標時一定要初始化

int i,m;

//cout<<"請輸入您想查詢的學生的序號:";

cin>>m;

pf=find(score,m);//返回為一維陣列指標,指向乙個學生成績

for(i=0;i<4;i++)

cout<<*(pf+i)<<" ";

cout《例4:

物件可以呼叫自己的析構函式:

也可以呼叫自己的建構函式:

再演示一下指向成員變數的指標:

#include #include #include using namespace std;

class a ;

class base

virtual void g()

virtual void h()

void f1()

void f2()

char c;

};int max(int x,int y)

int main()

來自於:

C C 函式指標,指標函式的用法,用處

先看函式指標 int func2 int x 宣告乙個函式 int q2 int x 宣告乙個函式指標 q2 func2 將func函式的首位址賦給指標f int c q2 3 3可以為任意實參 上面4句基本說明了函式指標的用法 函式指標是指向函式的指標,確切的說,是指向特定型別函式的指標 函式與函...

c c 函式指標的用法

鏈結2 1.定義 每乙個函式都占用一段記憶體單元,它們有乙個起始位址,指向函式入口位址的指標稱為函式指標。2.語法 指向函式的指標變數的一般定義形式為 資料型別 指標變數名 參數列 3.說明 1 函式指標的定義形式中的資料型別是指函式的返回值的型別。2 區分下面兩個語句 int p int a,in...

C C 函式指標的用法

一 函式指標介紹 函式指標指向某種特定型別,函式的型別由其引數及返回型別共同決定,與函式名無關。舉例如下 int add int nleft,int nright 函式定義 該函式型別為int int,int 要想宣告乙個指向該類函式的指標,只需用指標替換函式名即可 int pf int,int 未...