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