前言:
可以用指针变量指向整型变量、字符串、数组,也可以指向一个函数。
函数在编译的时候会被分配给一个入口地址,可以用一个指针变量指向函数,然后通过该指针变量调用此函数。
#include <stdio.h>
int main(){
int max(int,int);
int (*p)(int,int);
int a,b,c;
printf("enter a and b : ");
scanf("%d,%d",&a,&b);
p=max; /*函数名代表该函数的入口地址*/
c=(*p)(a,b);
printf("max = %d\n",c);
return 0;
}
int max(int x,int y){
int z;
if(x>y)z=x;
else z=y;
return (z);
}
函数指针变量通常的一个用途
是把指针变量作为参数
传递到其他函数(难点)
#include <stdio.h>
int main(){
int max(int,int); /*函数申明*/
int min(int,int); /*函数申明*/
void process(int,int,int (*method)(int,int));/*函数申明*/
int a,b;
printf("enter a and b: ");
scanf("%d,%d",&a,&b);
printf("max= ");
process(a,b,max);
printf("min= ");
process(a,b,min);
}
int max(int x,int y){
int z;
if(x>y)z=x;
else z=y;
return (z);
}
int min(int x,int y){
int z;
if(x<y)z=x;
else z=y;
return (z);
}
void process(int x,int y,int (*method)(int,int)){
int result;
result=(*method)(x,y);
printf("%d\n",result);
}
注:
main函数第一次调用process函数的时候,除了将a,b作为实参,将两个整数传给process的形参x,y外,还将函数名max作为实参将其入口地址传给process函数的中的形参method(method是指向函数的指针变量)。
分享到:
相关推荐
运用指向函数的指针实现一个通用函数调用两个函数,显示两个不同结果。 两个函数的作用是求两个不同的不定积分。
函数指针,就是指向函数的指针。在C++中,函数指针一般是指全局命名空间中的函数指针,类成员函数指针,与函数指针不同的是,类具有类域操作符,在声明类成员函数指针的时候,要指定成员函数返回值类型、类域操作符...
详细介绍了指向函数的指针 是如何实现的。
我知道函数指针是指向函数的指针,指针函数还是指一个函数的返回值是一个指针,但下面 的几道题还是感觉很迷惑。各位能否讲的详细点呢? (1)float(**def)[10] def是什么? (2)double*(*gh)[10] gh是什么? (3)double...
面试被问到,指向函数指针 指针函数 数组指针 指针数组 函数指针数组。理理清楚。
<类型说明符>*<指向函数指针名>(<参数表>) 关于给指向函数的指针赋值的格式如下: <指向函数的指针名>=<函数名> 关于在程序中,使用指向函数的指针调用函数的格式如下: (*<指向函数的指针名>)(<实参表>) ...
定义指向函数的指针,这种指针可以被赋值...
指针函数和函数指针是C语言里两个比较绕的概念。但是不仅面试题爱考,实际应用中也比较广泛。很多人因为搞不清这两个概念,干脆就避而远之,我刚接触C语言的时候对这两个概念也比较模糊,特别是当指针函数、函数指针...
1.普通函数指针指向普通函数 2.普通函数指向非静态成员函数 3. 类外部的 类函数指针 指向普通函数 4. 类外部的 类函数指针 指向成员函数 5. 类内部的 函数指针 指向成员函数 (类似于第2条) 6. 类内部的 函数指针 ...
详解函数指针和指针函数 函数类型 (*指针变量名)(形参列表); “函数类型”说明函数的返回类型,由于“()”的优先级高于“*”,所以指针变量名外的括号必不可少,后面的“形参列表”表示指针变量指向的函数所带的...
指针与函数 4-1 函数型指针变量的定义 在C语言程序中,函数定义了之后,...函数指针调用函数时,用(*pf)代替原函数名。 指向函数的指针变量pf,如果作pf±n,pf++,pf--运算,则没有意义。 4-2 函数型指针的赋值 【例8.
一、函数指针的定义 顾名思义,函数指针就是函数的指针。它是一个指针,指向一个函数。看例子: A) char * (*fun1)(char * p1,char * p2); B) char * *fun2(char * p1,char * p2); C) char * fun3(char * p1,char * ...
通常来说C++函数指针是指指向函数的指针,而非指向对象的指针。就像其他指针一样,函数指针也指向某个特定的类型。函数类型由其返回类型以及形参表确定,而与函数名无关。 定义: char (*fP)(char,int); ...
函数指针是通过指向函数的指针间接调用函数。函数指针可以实现对参数类型、参数顺序、返回值都相同的函数进行封装,是多态的一种实现方式。由于类的非静态成员函数中有一个隐形的this指针,因此,类的成员函数的指针...
让大家明白指针函数和函数指针的区别 学C++的都哦那个一被这两个东西弄糊涂了
C++学习笔记--函数指针 函数指针 程序运行期间。每个函数都会占用一段连续的内存空间。而函数名就是该函数所占内存区域的起始地址(也称“入口地址”)。...这种指向函数的指针变量,就叫做“函数指针”
指向函数的指针
C++的函数指针(function pointer)是通过指向函数的指针间接调用函数。相信很多人对指向一般函数的函数指针使用的比较多,而对指向类成员函数的函数指针则比较陌生。本文即对C++普通函数指针与成员函数指针进行实例...
本文给大家分享了AVR-GCC如何调用存储于Flash中的指向函数的指针。
C++中,成员指针是最为复杂的语法结构。但在事件驱动和多线程应用中被广泛用于调用回叫函数。在多线程应用中,每个线程都通过指向成员函数的指针来调用该...本文引导你了解成员函数指针的声明,赋值和调用回叫函数。