犯暈的函數指標和指標函數

來源:互聯網
上載者:User

函數指標和指標函數,編程每天都看見,卻每天都不當回事,直到有人問什麼是指標函數和函數指標,自己才知道自己犯暈了。於是趕快看資料溫習溫習。。。

 

1.指標函數是指函數的傳回值類型是一個指標類型,即本質是一個函數。

2.函數指標是指向函數的指標變數。 

*指標函數格式如下:

傳回型別 *函數名稱(形式參數表)

  { 函數體 }

int *func(int a,int b)

{

簡單例子如下:

[cpp] view plaincopyprint?#include <stdio.h>    int *func(int *a,int *b)  {      int *p;      int c;      c=*a+*b;      p=&c;      return p;  }    int main()  {      int a=3,b=7;      int *p;      p=func(&a,&b);        printf("%d\n",*p);      return 0;  }  

*函數指標格式如下:

函數類型 (標誌符 指標變數名) (形參列表);

int (*func)(int a,int b);

 

簡單例子如下:

[cpp] view plaincopyprint?#include <stdio.h>    int add(int *a,int *b)  {         int c;      c=*a+*b;      return c;  }    int main()  {      int a=3,b=7;      int *p;      int (*func)(int *a,int *b);      func=add;          printf("%d\n",func(&a,&b));      return 0;  }  

**函數指標聲明為指標,它與變數指標不同之處是,它不是指向變數,而是指向函數。

**函數指標本身首先應是指標變數,只不過該指標變數指向函數。 

-------(後面我直接簡單的把函數指標理解為它是指向一個函數的,所以你可以把一個函數地址【或說函數進入點也行】賦給它;

          指標函數,你可以直接理解為它是一個會返回指標的函數,然後你可以把這個指標賦給你定義的一個相同類型的指標。)

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.