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