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

计算器是我们学习中普通的不能再普通的工具,我在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


  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值