zoukankan      html  css  js  c++  java
  • 函数指针实战

    1、本次演示的是用函数指针指向不同的函数来实现同一个调用执行不同的结果。

    2、补充点:Linux命令行默认是行缓冲的,意思就是说当我们程序printf输出的时候,Linux不会一个字一个字的输出我们的内容,而是将其缓冲起来放在缓冲区等一行准备完了再一次性把一行全部输出出来(为了效率)。Linux判断一行有没有完的依据就是换行符‘ ’(windows中是 ,Linux中是 ,ios中是 )。也就是说你printf的再多,只要没遇到 (或者是程序终止,或者是缓冲区满)都不会输出而会不断缓冲,这个时候你是看不到内容输出的。因此在每个printf打印语句后面一定要加 ,否则可能导致误判。

    3实例代码演示:

     1 #include <stdio.h>
     2 
     3 int add(int a, int b);
     4 int sub(int a, int b);
     5 int mul(int a, int b);
     6 int dir(int a, int b);
     7 
     8 typedef int (*pFunc)(int ,int);
     9 
    10 int main(void)
    11 {
    12     pFunc p1 = NULL;
    13     int a = 0, b = 0;
    14     char c = 0;
    15     printf("请输入要运算的数字:
    ");
    16     scanf("%d %d",&a, &b);
    17     printf("请输入运算法则: + - * / 
    ");
    18     do
    19     {
    20         scanf("%c",&c);
    21     }while(c == '
    ');
    22     switch(c)
    23     {
    24         case '+':
    25             p1 = add;
    26             break;
    27         case '-':
    28             p1 = sub;
    29             break;
    30         case '*':
    31             p1 = mul;
    32             break;
    33         case '/':
    34             p1 = dir;
    35             break;            
    36     }
    37     printf("%d
    ",p1(a,b));
    38     return 0;
    39 }
    40 int add(int a, int b)
    41 {
    42     return a + b;
    43 }
    44 int sub(int a, int b)
    45 {
    46     return a - b;
    47 }
    48 int mul(int a, int b)
    49 {
    50     return a * b;
    51 }
    52 int dir(int a, int b)
    53 {
    54     return a / b;
    55 }
  • 相关阅读:
    Centos下安装JAVA
    发布app到appstore的详细步骤
    修改Struts2的struts.xml配置文件位置
    linux 打印当前进程环境变量
    软件复用
    用Delphi开发OPC客户端工具的方法研究
    位图显示地图
    idFTPserver控件实现的ftp 服务器
    电子地图概念
    Tidftp实现自动更新程序
  • 原文地址:https://www.cnblogs.com/jiangtongxue/p/11383699.html
Copyright © 2011-2022 走看看