函式指標要點

2021-06-07 16:57:12 字數 736 閱讀 4275

函式指標宣告:

int f(

int);

int (

*pf)(

int)

= &f;

第二個宣告建立了函式指標pf

,並把它初始化為指向函式

f。函式指標的初始化也可以通過一條賦值語句來完成。在函式指標的初始化之前具有

f的原型是很重要的。初始化表示式中的

&是可選的,因為函式名被使用時總是由編譯器把它轉化為函式指標。

&操作符只是顯式地說明了編譯器將隱式執行的任務。

在函式指標被宣告並且初始化之後,我們就可以使用三種方式呼叫函式:

int ans;

ans = f(

25);

ans = (

*pf)(

25);

ans = pf(

25);

第一條語句簡單滴使用名字呼叫函式f

,但它的執行過程可能和你想象的不太一樣。函式名

f首先被轉化為乙個函式指標,該指標指定函式在記憶體中的位置。然後,函式呼叫操作符呼叫該函式,執行開始於這個位址的**。

第二條語句對pf

執行間接訪問操作,它把函式指標轉換為乙個函式名。這個轉換並不是真正需要的,因為編譯器在執行函式呼叫操作符之前又會把它轉換回去。不過,這條語句的效果和第一語句是完全不一樣的。

第三條語句和前兩句的效果是一樣的,間接訪問操作並非必需的,因為編譯器需要的是乙個函式指標。這個例子顯示了函式指標通常是如何使用的。

指標要點小結

指標是c語言中乙個重要概念,它是c語言的乙個重要特色,它的應用可是使程式簡潔,緊湊,高效。一 c指標特點 1.通過指標可以直接操作硬體 2.通過指標可以構造理想的資料結構以簡化演算法 3.指標增強了c語言的編譯效率 二 指標指向 1 指向記憶體。2 指向i o埠。3 指向函式入口。三 指標的四個問題...

C語言指標要點

乙個有效的指標必然是以下三種狀態之一 儲存乙個特定物件的位址 指向某個物件後面的另乙個物件 或者是0值 注意只能是0常量的表示式,或者直接0。絕對不能來個變數0 int pi2 ival pi2 0 int pi3 dangerous,because pi3 is uninitialized一定要避...

C 函式要點

如果使用引用形參唯一目的是避免複製實參時,將形參定義成const引用 非const引用形參只能與完全同型別的非const物件關聯 不允許型別轉換或者直接傳遞右值 當編譯器檢查陣列形參時,不會檢查陣列的長度 通過引用傳遞包含陣列長度的形參時,編譯器會檢查陣列長度。不可以返回區域性物件的指標或者引用,因...