Road to Coder _指向函数的指针

#include"stdio.h"

main()
{
int max(int, int);
int min(int,int);
int add(int,int);
int fun(int x, int y, int(*p)(int, int));
int (*p)(int, int);
int a, b, c,n;
printf("please enter a and b:");
scanf_s("%d%d",&a,&b);
printf("please choose 1 or 2 or 3: ");
scanf_s("%d",&n);
/*
if (n == 1)p = max;
else if (n == 2) p = min;
else if (n == 3)p = add;
c = (*p)(a, b);
if(n==1)
printf("a=%d,b=%d,max=%d",a,b,c);
else if(n==2) printf("a=%d,b=%d,min=%d", a, b, c);
else if(n==3) printf("a=%d,b=%d,add=%d", a, b, c);*/
if (n == 1)fun(a, b, max);
else if (n == 2)fun(a, b, min);
else if (n == 3)fun(a, b, add);
getch();
}

int fun(int x, int y, int(*p)(int, int))
{
int result;
result = (*p)(x,y);
printf("result is :%d",result);

}

int min(int x, int y)
{
int z;
if (x < y) z = x;
else z = y;
printf("min=%d", z);
}

int max(int x, int y)
{
int z;
if (x > y) z = x;
else z = y;
return z;
printf("max=%d", z);
}

int add(int x,int y)
{
int z;
z = x + y;
return z;
printf("add=%d", z);
}

please enter a and b:500 499
please choose 1 or 2:2
a=500,b=499,max=500

please enter a and b:500 499
please choose 1 or 2:2
a=500,b=499,min=499

please enter a and b:500 499
please choose 1 or 2 or 3: 3
a=500,b=499,add=999

                                                                                         _by genmer

时间: 2024-10-17 18:36:21

Road to Coder _指向函数的指针的相关文章

指针实现两数交换和指向函数的指针

指针就是地址,而指针变量就是存储地址的变量. 1.指针与函数 利用指针解决: C语言中函数的参数采用"单向传递",故第一个程序中改变形参不会改变实参,而在第二个程序中,使用指针变量作为参数,改变指针变量所指向的值,函数调用结束后,变量值被保留下来. 2.指向函数的指针的应用

iOS指向函数的指针和block

  一:block基础知识 block基础知识 基本概念:block是用来保存一段代码的:^:是block得标志  好比*:是指针的标志 特点:1:保存一段代码: 2:可以有参数和返回值: 3:可以作为函数的参数传递: 与代码块的区别,代码块里的代码会自动执行,block中代码要手动调用: 二:普通数据类型.指向函数的指针.block的定义的类比 1:基本数据类型: 例如:int a = 10; 格式:数据类型  变量名 = 值: 2:指向函数的指针:可以仿照上边基本数据类型的定义 例如:voi

指向函数的指针

如果在程序中定义了一个函数,在编译时,编译系统为函数代码分配一段存储空间, 这段存储空间的起始地址(又称入口地址)称为这个函数的指针 例如: int (*p)(int,int) 用函数指针变量调用函数 如果想调用一个函数,除了可以通过函数名调用以外,还可以通过指向函数的指针变量来调用函数 怎样定义和使用指向函数的指针变量 类型名 (*指针变量)(函数参数列表)

编程题:指向函数的指针,求两个数中较大的数。

#include<stdio.h> int max(x,y) { int z; if(x>y)  z=x; else  z=y; return z; } void main() { int a,b,c; int (*p)(); p=max; scanf("%d,%d",&a,&b); c=(*p)(a,b); printf("%d,%d,max is %d\n",a,b,c); } 编程题:指向函数的指针,求两个数中较大的数.,布布

C语言中 指向函数的指针 简介

引子:在学习CPrimerPlus的第十四章的14.13节中,遇到了如下三行文字,是有关指向函数的指针的,把我搞晕了. char * fump(); //返回指向char的指针的函数 char (* frump)(); //指向返回类型为char的函数的指针 char (* flump[3])(); //由3个指针组成的数组,每个指针指向返回类型为char的函数 原来自己根本都不知道还有指向指针的函数,难怪自己懵逼了.参考了两篇博客(1."http://blog.csdn.net/hzyong_

C++学习笔记:指向函数的指针

1 #include <stdio.h> 2 3 int sum(int a, int b) 4 { 5 return a+b; 6 } 7 8 int minus(int a, int b) 9 { 10 return a-b; 11 } 12 13 int x(int a, int b) 14 { 15 return a*b; 16 } //第一个参数为指向函数的指针,返回类型为int,参数是int,int 1 void counting(int (*p)(int, int), int a

指向函数的指针数组的用法

声明一个指向函数的指针数组,并通过指针调用函数. #include<stdio.h> void f1();//函数f1的声明 void f2();//函数f2的声明 void f3();//函数f3的声明 void main() { void (*f[3])()={f1,f2,f3};//指向函数的指针数组的声明 int flag; printf("请输入一个1,2或者3.输入0退出.\n"); scanf("%d",&flag); while(

学习笔记之14-返回指针的函数与指向函数的指针

一.返回指针的函数 指针也是C语言中的一种数据类型,因此一个函数的返回值肯定可以是指针类型的. 返回指针的函数的一般形式为:类型名 * 函数名(参数列表) 比如下面这个函数,返回一个指向char类型变量的指针 1 // 将字符串str中的小写字母变成大写字母,并返回改变后的字符串 2 // 注意的是:这里的参数要传字符串变量,不能传字符串常量 3 char * upper(char *str) { 4 // 先保留最初的地址.因为等会str指向的位置会变来变去的. 5 char *dest =

【C语言】-返回指针的函数与指向函数的指针

本文目录 前言 一.返回指针的函数 二.指向函数的指针 说明:这个C语言专题,是学习iOS开发的前奏.也为了让有面向对象语言开发经验的程序员,能够快速上手C语言.如果你还没有编程经验,或者对C语言.iOS开发不感兴趣,请忽略 回到顶部 前言 前面我们花了接近3个章节学习指针,应该都感受到指针的强大了吧.指针可以根据地址直接操作内存中的数据,使用得当的话,不仅能使代码量变少,还能优化内存管理.提升程序性能.关于指针的内容还非常多,比如指针数组.指向数组的指针.指向指针的指针,呵呵,看到这些名字是否