函式指標和指標函式的區別?

2021-08-21 08:25:17 字數 1705 閱讀 8831

指標函式

是指帶指標的函式,本質上是乙個函式,函式返回型別是某一型別的指標,其形式一般如下所示:

型別識別符號 *函式名(引數列表)

函式指標

是指向函式的指標變數,本質上是乙個指標變數,表示的是乙個指標,它指向的是乙個函式,其形式一般如下:

型別說明符 (*函式名)(引數)

例如,int(*pf)(int x),它的意思就是宣告乙個函式指標,而pf = func,則是將func函式的首位址賦值給指標。

引申1:陣列指標和指標陣列?

陣列指標

就是指向陣列的指標,它表示的是乙個指標,它指向的是乙個陣列,它的重點是指標,如,int(*pa)[8]宣告了乙個指標,該指標指向了乙個有8個int型元素的陣列

指標陣列

就是指標的陣列,表示的是乙個陣列,它包含的元素是指標,它的重點是陣列。如, int* pa[8]宣告了乙個陣列,該陣列的每乙個元素都是int型的指標

引申2:函式模板和模板函式?

函式模板

是對一批模樣相同的函式的說明描述,他不是某乙個具體的函式

模板函式

是將函式模板內的「資料型別引數」具體化後得到的過載函式(就是由模板而來的函式)。

函式模板是抽象的,模板函式是具體的。

函式模板減少了程式設計師輸入**的工作量,是c++中功能最強的特性之一,是提高軟體**重用性的重要手段之一,一般形式如下:

template 《模板型別形參表》

《返回值型別》《函式名》《模板函式形參表》

//函式體

其中《模板型別形參表》的型別可以是任何型別,包括基本資料型別和類型別。需要注意的是,函式模板並不是乙個實實在在的函式,它是一組函式的描述,它並不能直接執行,需要例項化為模板函式後才能執行,而一旦資料型別形參例項化後,就會產生乙個實實在在的模板函式。

引申3:類模板和模板類

類模板與函式模板類似,將資料型別定義為引數,描述了**類似的部分類的集合,具體化為模板類後,可以用於生成具體的物件。類是物件的抽象,而類模板是類的抽象。

c++中引入模板類主要有以下5個方面的好處

(1)可用來建立動態增長或減小的資料結構

(2)它是型別無關的,因此具有很高的可復用性

(3)它在編譯時而不是執行時檢查資料型別,保證了型別安全

(4)它是平台無關的,可移植性強。

(5)可用於基本資料型別

引申4:指標常量/常量指標

指標常量

是指定義的指標只能在定義的時候初始化,之後不能改變其值。其格式為:

[資料型別][*][const][指標常量名稱]

常指標的值不能改變,但是其指向的內容卻可以改變

常量指標

指向常量的指標,因為常量指標指向的物件是常量,因此這個物件的值是不能夠改變的。定義的格式如下:

[資料型別][const][*][常量指標名稱]; 或[const][資料型別][*][常量指標名稱];

需要注意的是,指標常量強調的是指標的不可改變性,而常量指標強調的是指針對其所指物件的不可改變性,它所指向的物件的值不能通過常量指標來改變。

函式指標和指標函式 區別

一 在學習arm過程中發現這 指標函式 與 函式指標 容易搞錯,所以今天,我自己想一次把它搞清楚,找了一些資料,首先它們之間的定義 1 指標函式是指帶指標的函式,即本質是乙個函式。函式返回型別是某一型別的指標 型別識別符號 函式名 參數列 int f x y 首先它是乙個函式,只不過這個函式的返回值...

函式指標和指標函式區別

1 函式指標變數 在c語言中,乙個函式總是占用一段連續的記憶體區,而函式名就是該函式所佔記憶體區的首位址。我們可以把函式的這個首位址 或稱入口位址 賦予乙個指標變數,使該指標變數指向該函式。然後通過指標變數就可以找到並呼叫這個函式。我們把這種指向函式的指標變數稱為 函式指標變數 函式指標變數定義的一...

指標函式和函式指標的區別

1,這兩個概念都是簡稱,指標函式是指帶指標的函式,即本質是乙個函式。我們知道函式都又有返回型別 如果不 返回值,則為無值型 只不過指標函式返回型別是某一型別的指標。其定義格式如下所示 返回型別 識別符號 返回名稱 形式參數列 返回型別可以是任何基本型別和復合型別。返回指標的函式的用途十分廣泛。事實上...