函式指標,指標函式,陣列指標,指標陣列 區分

2022-03-13 03:18:20 字數 1146 閱讀 3541

what /why/how

這些怎麼區分:

函式指標:重點在指標,表示它是乙個指標,它指向的是乙個函式。eg: int (*fun)();

指標函式:重點在函式,表示它是乙個函式,它的返回值是指標。 eg: int*  fun();

陣列指標:重點在指標,表示它是乙個指標,它指向的是乙個陣列。int (*fun)[8];

指標陣列:重點在陣列,表示它是乙個陣列,它包含的元素是指標 itn*  fun[8];

類模板(class   template)  - 模板類(template   class) 區分:

類模板:重點在模板,表示它是乙個模板,專門用於產生類的模子。

template

class   vector

使用這個vector模板就可以產生很多的class(類),vector 、vector 、vector <   vector >。

模板類: 重點在類,表示的是由乙個模板生成而來的類。

例子:上面的vector 、vector 、……全是模板類。 

函式模板(function   template)——模板函式(template   function) 

函式模板的重點是模板。表示的是乙個模板,專門用來生產函式。

eg:template

void   fun(t   a) 

在運用的時候,可以顯式(explicitly)生產模板函式,fun(int) ,fun(double) , fun(shape*)。

也可以在使用的過程中由編譯器進行模板引數推導,幫你隱式(implicitly)生成。

fun(1)          //隱式的生成fun(int)

func(1.2)    //隱式的生成fun(double)

func('a')    //隱式的生成fun(char)

shape*  ps = new  ch;

fun(ps);    //隱式的生成fun(shape*)

模板函式:重點在函式,表示的是由乙個模板生成而來的函式。

面顯式(explicitly)或者隱式(implicitly)生成的fun 、fun ……都是模板函式。

從文章的討論中,可以看到,名字是非常重要的,如果對名字的使用不恰當的話,會引起很多的麻煩和誤解。有時候還是需要付出一定的代價。 

函式指標和指標函式 陣列指標和指標陣列

函式指標 在程式執行中,函式 是程式的演算法指令部分,它們和陣列一樣也占用儲存空間,都有相應的位址。可以使用指標變數指向陣列的首位址,也可以使用指標變數指向函式 的首位址,指向函式 首位址的指標變數稱為函式指標。1 函式指標定義 函式型別 指標變數名 形參列表 函式型別 說明函式的返回型別,由於 的...

函式指標VS指標函式 陣列指標VS指標陣列

定義乙個函式 void fuc1 int a 宣告函式指標 int fucptr int 函式指標fucptr指向函式fuc1 fucptr fuc1 呼叫函式指標 fucptr 10 int array1 10 定義乙個陣列 int arrayptr 10 定義乙個陣列指標 arrayptr ar...

函式指標,指標函式,陣列指標,指標陣列 核心剖析

就是 的優先順序比和 都要低,所以要是沒有 p 讓其型別 控制代碼母體 最終成為指標的話,那麼它就是控制代碼母體是函式或者陣列 下面就是指標函式,因為pfun先和 結合成為函式,然後返回值是int 整型指標 再下面是指標陣列,同樣也是a先和 結合成為陣列,然後陣列和每乙個元素的型別是int 整型指標...