zoukankan      html  css  js  c++  java
  • 函数指针的说明

    指针能够指向变量、数组,也能够指向函数,函数指针就是指向函数的指针。函数名实际是程序在内存中的起始地址。而指向函数的指针能够把地址传递给函数,也能够从函数返回给指向函数的指针。比如这个样例:通过一个函数求两个数的和。并通过函数指针调用该函数。
    #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("第一种调用函数的方法:函数名调用求和函数:
    ");
    	printf("%d+%d=%d
    ",a,b,sum(a,b));//通过函数名调用
    	fun=sum;//函数指针指向求和函数
    	printf("另外一种调用函数的方法:函数指针调用求和函数:
    ");
        printf("%d+%d=%d
    ",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)的形式。由于函数本身就是一个地址。

  • 相关阅读:
    POJ 1887 Testing the CATCHER
    HDU 3374 String Problem
    HDU 2609 How many
    POJ 1509 Glass Beads
    POJ 1458 Common Subsequence
    POJ 1159 Palindrome
    POJ 1056 IMMEDIATE DECODABILITY
    POJ 3080 Blue Jeans
    POJ 1200 Crazy Search
    软件体系结构的艺术阅读笔记1
  • 原文地址:https://www.cnblogs.com/wzzkaifa/p/7066350.html
Copyright © 2011-2022 走看看