函数指针的应用《一个简单的计算器》

时间:2022-12-29 15:03:03

计算器是我们学习中普通的不能再普通的工具,我在Win32 API中也写了一篇用C语言通过调用Win32 API开发一个简单的图形界面版的计算器,随着开发的不断深入,我越能体会到算法的重要性,特别是在算法中应用指针是C语言的难点,我也有必要写几篇关于指针的博客


学过C语言的人对指针是不会陌生的

int   a;//定义一个整型变量a
int *p;//定义一个整型指针p
p = &a;//p等于a的地址
printf("%d\n",*p);//打印a


函数指针:指针为函数的地址,指针操作函数

#include <stdio.h>
#include <stdlib.h>

int Change(int *p)
{
	*p = 123;

	return *p;
}

void main()
{
	int i = 10;

	int(*p)(int *);

	p = Change;

	i = p(&i);

	printf("%d\n",i);

	system("pause");
}

执行结果:

函数指针的应用《一个简单的计算器》


计算器程序代码:

#include <stdio.h>
#include <stdlib.h>

double Add(double i,double j)//加法
{
	return i + j;
}

double Sub(double i,double j)//减法
{
	return i - j;
}

double Mul(double i,double j)//乘法
{
	return i * j;
}

double Div(double i,double j)//除法
{
	return i / j;
}

void main()
{
	double num1 , num2, sum;//操作数
	char op;//运算符号

	printf("请输入两个数字和一个运算符:\n");
	scanf("%lf%c%lf",&num1,&op,&num2);

	//定义函数指针
	double(*p)(double,double);

	switch(op)
	{
	     case '+':
		{
			p = Add;//加法
		}
		break;

        case '-':
		{
			p = Sub;//减法
		}
		break;

		  case '*':
		{
			p = Mul;//乘法
		}
		break;

		  case '/':
		{
			p = Div;//除法
		}
		break;

	}

	sum = p(num1,num2);

	printf("%g%c%g=%g\n",num1,op,num2,sum);

	system("pause");
}


执行结果:

计算1.1+2.2

函数指针的应用《一个简单的计算器》


计算1.1-2.2

函数指针的应用《一个简单的计算器》


计算1.1*2.2

函数指针的应用《一个简单的计算器》


计算1.1/2.2

函数指针的应用《一个简单的计算器》