函數指標總結

來源:互聯網
上載者:User

1.一個函數的指標,必須確保該函數被定義且分配了記憶體,否則將指向空地址,這是指標的大忌。

 

2.函數指標的使用條件:參數、傳回值都吻合‘

 

3.函數指標沒有++或--的運算

 

4.函數指標作為參數的最好的例子就是回呼函數

 

5.函數指標的使用

例:

void (*p)(int &, int &);void cube(int &x, int &y){x = x * x * x;y = y * y * y;}void Test(void (*p)(int &, int &), int &a, int &b){p(a, b);cout<<a<<' '<<b<<endl;}int main(){int x = 2, y = 3;p = cube;p(x, y);//在主函數中使用函數指標cout<<x<<' '<<y<<endl;Test(p, x, y);//函數指標作為函數return 0;}

輸出:

8 27
512 19683

用typedef可以簡化函數指標的使用。

例:

typedef void (*p)(int &, int &);void cube(int &x, int &y){x = x * x * x;y = y * y * y;}void Test(p vp, int &a, int &b){vp(a, b);cout<<a<<' '<<b<<endl;}int main(){int x = 2, y = 3;p  vp = cube;vp(x, y);//在主函數中使用函數指標cout<<x<<' '<<y<<endl;Test(vp, x, y);//函數指標作為函數return 0;}

輸出:

8 27
512 19683

 

6.對於成員函數指標,注意以下幾點

1)要在特定類的對象中調用成員函數指標

2)盡量利用typedef簡化成員函數指標

3)盡量不用成員函數指標

 

7.數組名是數組第一個元素的指標。同理,函數名也是指向函數第一條指令的常量指標

程式編譯後,每個函數都有個首地址,也就是函數第一條指令的地址。

如果用一個指標來儲存這個地址,那麼這個指標就是函數指標,該指標可以看作是函數名。

因此我們可以通過函數指標調用函數

 

8.

int* func(int);

聲明了一個帶有整型參數的函數func,並返回一個整型的指標

聲明了一個函數,返回一個指標

int (*func)(int);

聲明一個int型的指標func,它指向一個函數,這個函數帶有一個int型的參數,並返回int型的值。

聲明一個指標,返回一個函數

 

9.使用函數指標,便於使用者選擇調用不同名字但是又類型和參數相同的函數

 

10.函數指標數組

void (*p[5])(int, int);

聲明了一個有5個元素的數組指標,每個指標指向的是帶有兩個int參數且返回void的函數

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.