171029 函式自學 函式位址和函式指標

2021-08-10 01:33:00 字數 1490 閱讀 5174

前言:本篇多數說法來自個人理解。在理論、邏輯上

int a;int & b=a

cout

<<&a;取變數位址

cout

<<*(&a);間址訪問

再看:

int

func()

func()

&func

//取函式位址,但函式只要你提供位址它就可以被訪問。所以這樣的形式也可以呼叫函式。

二.函式型別:一類相同函式的抽象

注意:函式型別,取決於包括但不僅限函式返回值的型別。乙個函式的型別要看它的引數種類及個數以及其返回值的種類。

基於此,聯絡變數(常量)有各種不同的型別。函式也可以有,而且可以人為定義:

typedef 型別 函式型別名(形式參數列)        typedef

int functionkind(int,int,char)

這樣的操作定義了乙個型別的函式,其函式型別名為:functionkind。這個型別名是一類具有相同介面的函式的抽象。在此之後

functionkind main,max,min; 

和int a,b,c;

上述兩行**對比來看,第一行即是先定義了函式型別,而後只需以此形式宣告,即可宣告這三個函式

(注意,只是完成了三個函式的宣告而已,沒有進行定義,因為。。你家的函式體寫了??)

到此,既然函式有了型別,那麼指向函式的指標當然也有型別之別:

型別(*指標變數名)(形參表);

或函式型別*指標變數名;

或者我們可以直接把定義函式型別和相應指標的工作一併完成:

使用關鍵字typedef

typedef 型別(*指標型別)(形參表);
而在定義完指標型別之後,將函式位址賦給指標,就可以呼叫函式。

有函式func;

有指標p;

p=func;//即給指標賦值(函式位址值)

x=p(3.14)//此步即等價於x=func(3.14)

可以通過函式呼叫的原理來理解這件事:

在cpp中,上述的幾種形式都是函式的**模組在記憶體的入口位址值,稱為函式位址。於此,我們只要提供了函式的位址,就可以呼叫函式。

函式這種**物件和普通資料物件性質不同當引數是函式時:

套用數學概念即需要乙個符合函式時。即此函式在定義時就需要另外乙個函式作為引數時。我們可以通過指標來完成做引數的這個函式的呼叫。

p.s.

今日函式開始授課。仍有收穫:

指標即位址,位址即指標。指標變數是存放指標的東西。

對指標變數賦值即改變指標指向。

對指標變數賦0即讓其懸空。 p=0;

.main函式是所有函式的入口函式。

Python自學記錄 呼叫函式和定義函式

對於函式,我的理解是 抽象的方法。你不需要它是內部結構是什麼樣子的,只要遵從它給你的規則來使用,就能得到想要的效果。在 python 中,有很多內建的函式供我們呼叫,常用的函式如下 help obj 幫助,解釋傳入的obj type obj 檢視傳入obj的型別 callable obj 檢視obj...

自學python 函式

函式是組織好的,可重複使用的,用來實現單一,或相關聯功能的 段。函式能提高應用的模組性,和 的重複利用率。你已經知道python提供了許多內建函式,比如print 但你也可以自己建立函式,這被叫做使用者自定義函式 內建函式 說明語法 python 定義函式使用 def 關鍵字,一般格式如下 def ...

C C 自學旅程 8 建構函式和析構函式

新引入了類這個概念,你別說突然之間各種概念就多起來麻煩起來了。今天來說說建構函式和析構函式。一 建構函式和拷貝建構函式 1.建構函式 簡單的說,建構函式就是給類成員初始化的函式。那怎麼使用呢?我們直接上 1 建構函式 2 include3 using namespace std 4class dat...