函数指针<边看美女,边涨知识(脑子)>

阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6

<边看美女边涨知识脑子>系列文章目录

第一章 浮点型在内存中的存储<边看美女边涨知识脑子>

第二章 数组指针<边看美女边涨知识脑子>



前言

提示本篇文章讲解的是函数指针函数指针数组

还会讲解一个函数指针数组的使用案例“简单的计算器


提示以下是本篇文章正文内容下面案例可供参考

一、函数指针是什么

我们举个例子大家就明白了什么是函数指针了

整形指针是存放整形的指针

字符指针是存放字符的指针

数组指针是存放数组的指针

那函数指针就是存放函数的指针

1.回顾一下之前的字符指针的定义方法

代码如下示例

int main()
{
    char ch='A';
    char *p=&ch;
    *p='B';
    return 0;
}

2. 函数指针定义方法

代码如下示例

int add(int x,int y)
{
    return x+y;
}

int mian()
{
    int (*p)(int ,int )=&add;
}

二、函数指针数组

1.什么是函数指针数组

把函数的地址存放到一个数组中这个数组就叫函数指针数组。

2.函数指针数组如何定义

代码如下示例

int add(int x,int y)
{
    return x+y;
}
int sub(int x,int y)
{
    return x-y;
}
int mian()
{
    int (*p[2])(int ,int )={add,sub};
}

三、函数指针数组的用途

函数指针数组的用途转移表

1.转移表使用案例

代码如下示例

#include <stdio.h>
void front()
{
	printf("**********************************\n");
	printf("**       1.加法   2.减法        **\n");
	printf("**       3.乘法   4.除法        **\n");
	printf("**       5.取余   0.结束        **\n");
	printf("**********************************\n");
	printf("请选择\n");
}
void add()
{
	printf("加法模式\n");
	int x = 0;
	int y = 0;
	int ret = 0;
	scanf("%d %d", &x, &y);
	ret = x + y;
	printf("%d + %d=%d\n", x, y, ret);
}
void sub()
{
	printf("减法模式\n");
	int x = 0;
	int y = 0;
	int ret = 0;
	scanf("%d %d", &x, &y);
	ret = x - y;
	printf("%d - %d=%d\n", x, y, ret);
}
void mul()
{
	printf("乘法模式\n");
	int x = 0;
	int y = 0;
	int ret = 0;
	scanf("%d %d", &x, &y);
	ret = x * y;
	printf("%d * %d=%d\n", x, y, ret);
}
void div()
{
	printf("除法模式\n");
	int x = 0;
	int y = 0;
	int ret = 0;
	scanf("%d %d", &x, &y);
	ret = x / y;
	printf("%d / %d=%d\n", x, y, ret);

}
void dre()
{
	printf("取余模式\n");
	int x = 0;
	int y = 0;
	int ret = 0;
	scanf("%d %d", &x, &y);
	ret = x % y;
	printf("%d %d=%d\n", x, y, ret);
}
void (*pf[6])() = { NULL,add,sub ,mul ,div ,dre };
int main()
{
	int select = 0;
	
	do
	{
	front();
	scanf("%d", &select);
	if (select>0&&select<=5)
	{
		pf[select]();
	}
	else if(select==0)
	{
		printf("退出成功\n");
		break;
	}
	else
	{
		printf("非法输入,请从新输入\n");
	}
	/*	
		switch (select)
		{
		case 1:
			
			add();
			break;
		case 2:
			sub();
			break;
		case 3:
			mul();
			break;
		case 4:
			div();
			break;
		case 5:
			dre();
			break;
		case 0:
			printf("退出计算器\n");
			break;
		default:
			printf("非法输入,请从新输入\n");
			break;
		}*/
	} while (select);
	return 0;
}

总结

 

这里对文章进行总结

以上就是今天要讲的内容本文简单介绍了函数指针函数指针数组的使用。

阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6