计算器小程序+函数指针数组介绍

简介: 计算器是我们生活中重要的使用工具,那么我们要怎样写出计算机小程序呢?想必大家有很多种写出计算器程序的代码,在这里小编将用函数指针数组写出计算器程序.

前言:

计算器是我们生活中重要的使用工具,那么我们要怎样写出计算机小程序呢?想必大家有很多种写出计算器程序的代码,在这里小编将用函数指针数组写出计算器程序.

函数名与&函数名的含义:

例如下面的Add函数,当我们将Add函数名和&Add放在数组里面时都是函数的地址.

db187049288aac27344493545ebe42ce_940464cfa54545bdb065e1f827e3ba22.png

什么是函数指针数组:

顾名思义,所谓函数指针数组实质上是数组,但是里面存储的是函数,因为函数名是函数的地址,所以我们要用指针存储

例如下图:

bdf2ae1551dee620527bf58d31a19dc1_ca16eb75d5314fb6abf764f066116ff8.png

p[2]就是指针数组,里面存有Add函数与Sub函数,返回类型是int

代码程序(细节在代码中)

#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
void meau()
{
  printf("0.退出\n");
  printf("1.加法\n");
  printf("2.减法\n");
  printf("3.乘法\n");
  printf("4.除法\n");
}
//加法
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;
}
int main()
{
  int input = 0;
  int x = 0, y = 0;
  //构建一个函数指针的数组
  int (*p[5])(int x, int  y) = { 0, Add, Sub, Mul, Div };
  do
  {
    //菜单
    meau();
    printf("请选择:>\n");
    scanf("%d", &input);
    if (input == 0)
    {
      printf("正在退出\n");
      break;
    }
    else if (input >= 1 && input <= 4)
    {
      printf("请输入两个整数\n");
      scanf("%d %d", &x, &y);
      int ret = p[input](x, y);
      printf("%d\n\n", ret);
    }
    else
    {
      printf("选择错误,请重新选择\n");
    }
  } while (input);
  return 0;
}
目录
相关文章
|
4天前
|
算法 Java
双指针在数组遍历中的应用
文章深入探讨了双指针技术在数组遍历中的应用,通过实战例子详细解释了快慢指针和首尾指针的不同用法,并提供了解决LeetCode相关问题的Java代码实现。
|
27天前
|
运维
开发与运维数组问题之指针的加减法意义如何解决
开发与运维数组问题之指针的加减法意义如何解决
31 7
|
27天前
|
C++ 索引 运维
开发与运维数组问题之在C++中数组名和指针是等价如何解决
开发与运维数组问题之在C++中数组名和指针是等价如何解决
18 6
|
27天前
|
存储 C++ 运维
开发与运维数组问题之指针的定义语法如何解决
开发与运维数组问题之指针的定义语法如何解决
23 6
|
2月前
|
编译器 C语言
指针进阶(数组指针 )(C语言)
指针进阶(数组指针 )(C语言)
|
2月前
|
C语言
【C语言】:详解函数指针变量,函数指针数组及转移表
【C语言】:详解函数指针变量,函数指针数组及转移表
31 2
|
2月前
|
C语言
【C语言】:详解指针数组,数组指针及(二维)数组传参(2)
【C语言】:详解指针数组,数组指针及(二维)数组传参(2)
22 1
|
2月前
|
Serverless C语言
【C语言】:对(一维)数组与指针的深入理解(1)
【C语言】:对(一维)数组与指针的深入理解(1)
23 1
|
2月前
|
存储 算法 安全
C++一分钟之-数组与指针基础
【6月更文挑战第19天】在C++中,数组和指针是核心概念,数组是连续内存存储相同类型的数据,而指针是存储内存地址的变量。数组名等同于指向其首元素的常量指针。常见问题包括数组越界、尝试改变固定大小数组、不正确的指针算术以及忘记释放动态内存。使用动态分配和智能指针可避免这些问题。示例代码展示了安全访问和管理内存的方法,强调了实践的重要性。
37 3
|
2月前
|
存储 C语言
C语言中的多级指针、指针数组与数组指针
C语言中的多级指针、指针数组与数组指针
22 0