C/C++函數指標與指標函數等區別__Jquery

來源:互聯網
上載者:User
(1)函數指標與指標函數

(1)函數指標

一種特殊的指標,它指向函數的入口;

/** 定義一個函數指標p,只能指向傳回值為int,形參為兩個int的函數*/int (*p)(int,int);
/*  * 求最大值  * 傳回值是int類型,返回兩個整數中較大的一個  */  int max(int a, int b) {      return a > b ? a : b;  }  /*  * 求最小值  * 傳回值是int類型,返回兩個整數中較小的一個  */  int min(int a, int b) {      return a < b ? a : b;  }int main(){    f = max; // 函數指標f指向求最大值的函數max      int c = (*f)(1, 2);    f = min; // 函數指標f指向求最小值的函數min      c = (*f)(1, 2); }

(2)指標函數

返回指標的函數,一個函數,它的傳回值是指標;

//這是一個形參為兩個int類型,傳回值是int型指標的函數int *p(int,int);
/*  * 指標函數的定義  * 傳回值是指標類型int *  */  int *f(int a, int b) {      int *p = (int *)malloc(sizeof(int));      memset(p, 0, sizeof(int));      *p = a + b;        return p;  } int main(){    int *p1 = NULL;      p1 = f(1, 2);  }
(2)指標數組與數組指標

(1)指標數組

//一個數組,它包含的元素是指標int* point[10]; 

(2)數組指標

//一個指標,它指向的是一個數組int (*point)[10]; 
(3)函數模板與模板函數

(1)函數模板

表示一個模板,專門用來產生函數;

template <typename T> void fun(T a) { }

(2)模板函數

是一個函數,表示由一個模板產生而來的函數;

如:fun <int> , fun <double> , fun <Shape*>等; (4)類模板與模板類

(1)類模板

表示一個模板,專門用於生產類的模板;

template <typename T> class Vector { }; 

(2)模板類

是一個類,表示由一個模板產生而來的類;

如:Vector<int> , Vector<double> , Vector<Shape*>等;

聯繫我們

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