程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> 關於C++ >> C++ 函數指針的詳解

C++ 函數指針的詳解

編輯:關於C++

1.函數指針

(1)一般來說函數通常包括一系列指令,通過編譯後,在內存中占據了一塊存儲空間。

它有一個起始地址,這個起始(入口)地址就稱為函數的指針。

(2)主函數在調用子函數時,就是讓程序轉移到函數的入口地址開始執行。

(3)我們可以定義一個指針變量用來指向函數,然後通過使用該指針變量調用此函數。

指向函數的指針:就是能夠存放某個函數入口地址的指針變量。


總結了一下,函數指針有兩個用途:一個是調用函數,另一個是做函數的參數

函數指針定義的一般形式:

數據類型 (*指針變量名)(參數表);

例如:

int (*p)(); // p為指向返回值為整型數據的函數的指針
float (*q)(float,int); // q為指向返回值為浮點型數據的函數的指針


2.函數指針調用函數的步驟

(1)函數指針變量先要指向函數

定義了指向函數的指針變量,就可以在指針變量與特定函數之間建立關聯,讓指針變量指向特定函數。

要注意一下:

(1)指針變量只能指向定義時所指定的一類函數。

(2)一個指針變量可以先後指向多個不同的函數。


具體代碼:

#include

int arr_add(int (*arr)[4], int n, int m )

void main()
{
int a[3][4] = {1,3,5,7,9,11,13,15,17,19,21,23};
int *p, total1, total2;
int (*pt)(int (*arr)[4], int n, int m );
pt=arr_add;
total1 = arr_add( a,3,4 );
total2 = (*pt)( a,3,4 );
printf( "total1 = %d, total2 = %d\n", total1,total2 );
}

int arr_add(int (*arr)[4], int n, int m )
{
int i, j, sum=0;
for(i=0;i for( j = 0; j < m; j++ )
sum += arr[i][j];
return (sum);
}


  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved