c语言小白指针尝试
前言
本文使用指针来创建计算器
二、使用步骤
1.引入库
代码如下(示例):
#include<stdio.h>
int Add(int x, int y); 加法
int Sub(int x, int y); 减法
int Div(int x, int y); 除法
int Mul(int x, int y); 乘法
void menu(); 菜单函数
2.函数创建
代码如下(示例):
int Add(int x, int y) { return x + y; } int Sub(int x, int y) { return x - y; } int Mul(int x, int y) { return x * y; } int Div(int x, int y) { return x / y; } void menu() { printf("********************\n"); printf("***0.exit***1.Add***\n"); printf("***2.Sub****3.Div***\n"); printf("***4.Mul************\n"); printf("********************\n"); }
2.主函数创建
代码如下(示例):
int main()
{
int x = 0;
int y = 0;
int ret = 0;
int input = 0; //输入值
//创建一个函数指针数组 解释在下面
int (*p[5])(int, int) = { NULL,Add,Sub,Mul,Div };
//下标 0 1 2 3 4
do
{
menu();
printf("请选择:>");
scanf("%d", &input);
if (input >= 1 && input <= 4) //防止输入值超过下标
{
printf("请输入两个操作数:》");
scanf("%d %d", &x, &y);
ret = p[input](x, y);
printf("%d\n", ret);
}
else if (input == 0)
{
printf("退出计算器");
}
else
{
printf("输入错误,请重新输入");
}
} while (input);
return 0;
}
对函数指针数组解释
int (*p[5])(int, int) = { NULL,Add,Sub,Mul,Div };
(int,int)为函数变量,表示x与y为整形变量,保持一致。
*p为指针,【5】此数组包含5个元素
,最前面int表示返回类型
众所周知数组下标从0开始算,但函数0是退出游戏,所以我们要让它往后延续一个
这时我们就需要空指针NULL来充当这一角色,空指针计算机不识别为0.
总结
以上就是用函数指针数组创建计算器的原理,如有错误请私信小编,希望大家点个赞,后续将更新数组前面的内容。