指標函式
是指帶指標的函式,本質上是乙個函式,函式返回型別是某一型別的指標,其形式一般如下所示:
型別識別符號 *函式名(引數列表)
函式指標
是指向函式的指標變數,本質上是乙個指標變數,表示的是乙個指標,它指向的是乙個函式,其形式一般如下:
型別說明符 (*函式名)(引數)
例如,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,這兩個概念都是簡稱,指標函式是指帶指標的函式,即本質是乙個函式。我們知道函式都又有返回型別 如果不 返回值,則為無值型 只不過指標函式返回型別是某一型別的指標。其定義格式如下所示 返回型別 識別符號 返回名稱 形式參數列 返回型別可以是任何基本型別和復合型別。返回指標的函式的用途十分廣泛。事實上...