函数指针问题,求解答

代码中给函数指针赋值的 语句1、2、3  以及用函数指针调用函数的 语句a、b 运行结果都正确,到底哪个才是正确的呢???

#include<stdio.h>
int add(int a,int b){
	return a+b;
}
int main()
{
	int (*p)(int,int);
	int sum;

	p = add;   //语句1
//	p = &add;  //语句2
//	p = *add;  //语句3

	sum = p(1,2);     //语句a
//	sum = (*p)(a,b);  //语句b

	printf("%d\n",sum);
	return 0;
}

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-10-18 02:25:46

函数指针问题,求解答的相关文章

使用函数指针实现任意数据类型大小比较

学习如鹏网C语言也能干大事,第三章透彻讲指针 中的第 13 节 函数指针案例:获得任意类型数组的最大值 讲述了使用函数指针如何求任意数据类型的最大值,大家知道典型的max函数如下所示 1 //函数功能:求int数组的最大值 2 //假设输入数组为{8,7,2,9},length=4,下述函数返回值max为9 3 int IntMax(int *array,int length) 4 { 5 int max,i; 6 max = array[0]; 7 for(i=1;i<length;i++)

编程题:指向函数的指针,求两个数中较大的数。

#include<stdio.h> int max(x,y) { int z; if(x>y)  z=x; else  z=y; return z; } void main() { int a,b,c; int (*p)(); p=max; scanf("%d,%d",&a,&b); c=(*p)(a,b); printf("%d,%d,max is %d\n",a,b,c); } 编程题:指向函数的指针,求两个数中较大的数.,布布

编程算法 - 求1+2+...+n(函数指针) 代码(C++)

求1+2+...+n(函数指针) 代码(C++) 本文地址: http://blog.csdn.net/caroline_wendy 题目: 求1+2+...+n, 要求不能使用乘除法\for\while\if\else\switch\case等关键字及条件判断语句(A?B:C). 可以使用函数指针求解, 通过递归调用, 每次递归值减1, 使用求反运算(!), 即非0为0, 0为1. 代码: /* * main.cpp * * Created on: 2014.7.12 * Author: sp

【C/C++学院】0726-cppIDE/一级指针/指针数组/函数指针/函数指针数组/二级指针

[送给在路上的程序员] 对于一个开发者而言,能够胜任系统中任意一个模块的开发是其核心价值的体现. 对于一个架构师而言,掌握各种语言的优势并可以运用到系统中,由此简化系统的开发,是其架构生涯的第一步. 对于一个开发团队而言,能在短期内开发出用户满意的软件系统是起核心竞争力的体现. 每一个程序员都不能固步自封,要多接触新的行业,新的技术领域,突破自我. cppIDE 使用mfc和codeblocks中的mingw编译器.执行system命令中的bat批处理脚本. 一级指针 指针,结构体struct,

C++中传送函数指针

函数指针是一种非常好的类型.因此,可以编写一个函数,它的一个参数是函数指针.然后,在(外部)函数使用其函数指针参数时,就间接地调用在调用函数时对应参数指向的函数. 由于指针在不同的情况下可以指向不同的函数,因此允许调用程序确定要从外部函数中调用哪个函数. 在用函数指针类型的参数调用函数时,参数可以只包含函数地址的相应类型的指针.还可以把函数名作为参数,显示传送函数.作为参数传送给另一个函数的函数有时称为回调函数. 示例: #include <iostream> using std::cout;

C语言:通过函数指针来完成两个数的加减乘除(函数指针当做参数使用)

// //  main.c //  Function_pointer // //  Created by mac on 15/8/2. //  Copyright (c) 2015年 bjsxt. All rights reserved. //  要求:将函数指针做参数来求两个整数的和.差.积.商. //知识点:函数指针就是一个指向函数的指针,通过指针指向要调用的函数来完成操作.其实,这个指针就是指向函数的入口地址. //切记:要被调用的函数必须和函数指针的声明的一样(包括:返回值类型.参数个数

Delphi的函数指针

不求全面,先留个爪: TNotifyEvent = procedure(Sender: TObject) of object; TMethod = record Code, Data: Pointer; end; 判断两个按钮的事件是否相等: procedure TForm1.Button5Click(Sender: TObject); var f1,f2: TNotifyEvent; begin f1:=Button1.OnClick; f2:=Button2.OnClick; if (@[e

c :函数指针具体解释

在研究opencv源码的过程中.处处可见到函数指针,于是翻出来谭浩强的<C程序设计>把函数指针这一块内容再补一补! 1 定义 数据类型 (*指针变量名)(參数表); 注: 数据类型是指的函数返回值的类型; (*指针变量名)两側的括号不能省略.表示p先与*结合,是指针变量.然后再与后面的(參数表)结合; (參数表)能够是一个參数,也能够是多个參数,只是在引用的时候要保证形參与实參一致. 2 int (*p)(int a, int b); 表示定义一个指向函数的指针变量p,它不是固定的指向哪一个函

黑马程序员-----指针函数和函数指针

------<a href="http://www.itheima.com" target="blank">Java培训.Android培训.iOS培训..Net培训</a>.期待与您交流! ----- 第一讲 指针函数 一.指针函数的概念 所谓函数类型是指函数返回值的类型,在c语言中允许一个函数的返回值是一个指针(地址),这种返回指针的函数称为指针型函数. 二.指针函数的定义 定义指针型函数的一般形式为: int  *sum(int a,i