如何使用指向函数的指针

在使用指向函数的指针调用函数时,可以使用两种形式:

定义:int (*fun)(int a,int b);

赋值:fun = fun1;

调用:fun(a,b);或者(*fun)(a,b);均可。

下面是测试程序:(Visual Studio 2013)

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int add(int x, int y)
{
	return x + y;
}

int minus(int x, int y)
{
	return x - y;
}

int compute(int x, int y, int(*f)(int x, int y))
{
	//return f(x, y);
	return (*f)(x, y);
	//使用上述两种情况均可。
}

int main()
{
	int x, y;
	char z;
	int n;
	while (1)
	{
		printf("input:");
		scanf("%d%c%d", &x, &z, &y);
		switch (z)
		{
		case ‘+‘:
			n = compute(x, y, add);
			break;
		case ‘-‘:
			n = compute(x, y, minus);
			break;
		default:
			break;
		}
		printf("%d\n", n);
	}
	return 0;
}

测试结果:

如何使用指向函数的指针

时间: 2024-08-04 09:37:12

如何使用指向函数的指针的相关文章

指针实现两数交换和指向函数的指针

指针就是地址,而指针变量就是存储地址的变量. 1.指针与函数 利用指针解决: C语言中函数的参数采用"单向传递",故第一个程序中改变形参不会改变实参,而在第二个程序中,使用指针变量作为参数,改变指针变量所指向的值,函数调用结束后,变量值被保留下来. 2.指向函数的指针的应用

iOS指向函数的指针和block

  一:block基础知识 block基础知识 基本概念:block是用来保存一段代码的:^:是block得标志  好比*:是指针的标志 特点:1:保存一段代码: 2:可以有参数和返回值: 3:可以作为函数的参数传递: 与代码块的区别,代码块里的代码会自动执行,block中代码要手动调用: 二:普通数据类型.指向函数的指针.block的定义的类比 1:基本数据类型: 例如:int a = 10; 格式:数据类型  变量名 = 值: 2:指向函数的指针:可以仿照上边基本数据类型的定义 例如:voi

指向函数的指针

如果在程序中定义了一个函数,在编译时,编译系统为函数代码分配一段存储空间, 这段存储空间的起始地址(又称入口地址)称为这个函数的指针 例如: int (*p)(int,int) 用函数指针变量调用函数 如果想调用一个函数,除了可以通过函数名调用以外,还可以通过指向函数的指针变量来调用函数 怎样定义和使用指向函数的指针变量 类型名 (*指针变量)(函数参数列表)

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

#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); } 编程题:指向函数的指针,求两个数中较大的数.,布布

C语言中 指向函数的指针 简介

引子:在学习CPrimerPlus的第十四章的14.13节中,遇到了如下三行文字,是有关指向函数的指针的,把我搞晕了. char * fump(); //返回指向char的指针的函数 char (* frump)(); //指向返回类型为char的函数的指针 char (* flump[3])(); //由3个指针组成的数组,每个指针指向返回类型为char的函数 原来自己根本都不知道还有指向指针的函数,难怪自己懵逼了.参考了两篇博客(1."http://blog.csdn.net/hzyong_

C++学习笔记:指向函数的指针

1 #include <stdio.h> 2 3 int sum(int a, int b) 4 { 5 return a+b; 6 } 7 8 int minus(int a, int b) 9 { 10 return a-b; 11 } 12 13 int x(int a, int b) 14 { 15 return a*b; 16 } //第一个参数为指向函数的指针,返回类型为int,参数是int,int 1 void counting(int (*p)(int, int), int a

指向函数的指针数组的用法

声明一个指向函数的指针数组,并通过指针调用函数. #include<stdio.h> void f1();//函数f1的声明 void f2();//函数f2的声明 void f3();//函数f3的声明 void main() { void (*f[3])()={f1,f2,f3};//指向函数的指针数组的声明 int flag; printf("请输入一个1,2或者3.输入0退出.\n"); scanf("%d",&flag); while(

学习笔记之14-返回指针的函数与指向函数的指针

一.返回指针的函数 指针也是C语言中的一种数据类型,因此一个函数的返回值肯定可以是指针类型的. 返回指针的函数的一般形式为:类型名 * 函数名(参数列表) 比如下面这个函数,返回一个指向char类型变量的指针 1 // 将字符串str中的小写字母变成大写字母,并返回改变后的字符串 2 // 注意的是:这里的参数要传字符串变量,不能传字符串常量 3 char * upper(char *str) { 4 // 先保留最初的地址.因为等会str指向的位置会变来变去的. 5 char *dest =

【C语言】-返回指针的函数与指向函数的指针

本文目录 前言 一.返回指针的函数 二.指向函数的指针 说明:这个C语言专题,是学习iOS开发的前奏.也为了让有面向对象语言开发经验的程序员,能够快速上手C语言.如果你还没有编程经验,或者对C语言.iOS开发不感兴趣,请忽略 回到顶部 前言 前面我们花了接近3个章节学习指针,应该都感受到指针的强大了吧.指针可以根据地址直接操作内存中的数据,使用得当的话,不仅能使代码量变少,还能优化内存管理.提升程序性能.关于指针的内容还非常多,比如指针数组.指向数组的指针.指向指针的指针,呵呵,看到这些名字是否

C语言-指向函数的指针

函数类型 (* 函数指针变量)() : //指向函数的入口地址 一个函数是若干语句的集合 , 经编译后存储在函数代码存储区 , 并占有一片连续的存储空间 ,对函数指针只能用函数名赋值而无其他运算 #include<stdio.h> int max(int x ,int y); int main() { int (* p)() ;//定义p是指向函数的指针变量 int a , b , c ; p= max ;//将函数max的入口地址赋给指针变量p scanf("%d %d"