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

[C語言] 函數指針小談

編輯:關於C
指針可以指向變量、數組,也可以指向函數,函數指針就是指向函數的指針 函數名實際是程序在內存中的起始地址。而指向函數的指針可以把地址傳遞給函數 也可以從函數返回給指向函數的指針。例如這個例子:通過一個函數求兩個數的和 並通過函數指針調用該函數。   #include<stdio.h> int sum(int a,int b);//求和函數的聲明 void main() {     int a,b;     int (*fun)(int,int);//聲明一個函數指針     printf("請輸入兩個整數:");     scanf("%d,%d",&a,&b);     printf("第一種調用函數的方法:函數名調用求和函數:\n");     printf("%d+%d=%d\n",a,b,sum(a,b));//通過函數名調用     fun=sum;//函數指針指向求和函數     printf("第二種調用函數的方法:函數指針調用求和函數:\n");     printf("%d+%d=%d\n",a,b,(*fun)(a,b));//通過函數指針調用函數 } int sum(int m,int n)//求和函數實現 {     return m+n; }   程序運行結果如下:   在程序中的語句int(*fun)(int,int);是聲明一個指向函數的指針變量 並且所指向的函數返回值是整型,有兩個整型參數。語句fun=sum 表示函數指針fun指向函數sum,fun和sum都指向函數sum的起始地址 程序在編譯階段會被翻譯成一行行指令並被裝入到內存區域。   其中,主函數中的語句(*fun)(a,b);是執行調用求和函數的,也可以寫成fun(a,b)的形式 因為函數本身就是一個地址
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved