指针函数与函数指针的指导

来源:互联网 发布:python 捕捉ctrl c 编辑:程序博客网 时间:2024/05/18 03:39

在下这厢有礼了。


第一步意思理解:

1. 指针函数:指针函数是指带指针的函数,即本质是一个函数。函数的返回类型是一种类型指针。

例子:

int *Func(int a,int b); /*  声明一个指针函数  */


2. 函数指针:函数指针是指向函数的指针变量,即本质是一个指针变量。指向函数的指针包含了函数的地址,可以通过它来调用函数。

例子:

void (*Func)(); /*  声明一个函数指针  */

Func = Func1;/*  将Fun1函数的首地址赋给指针Func  */

将函数的地址赋给函数指针,可以采用下面两种形式:

Func = &Func1;

Func = Func1;

取地址符&是不必要的,因为函数标识符的标号表示了它的地址,如果是函数调用,还必须包含一个圆括号括起来的参数表。


注意:函数指针与指针函数的表示方法不同,最大的区别是看函数名是否带()且指针*在括号里面没,在里面就是函数指针;在括号外面就是指针函数;


第二步代码例子实践

代码目的是将函数指针和指针函数的简单应用展示;

void (*funcp)(void);    /* 函数指针 */char *funcq(void);     /* 指针函数 */void FileFunc(void), EditFunc(void); void main(){    char *test;    funcp=FileFunc; /* 函数指针指向函数,说明函数 */    (*funcp)();     /* 指针函数代表函数 */    funcp=EditFunc;    (*funcp)();        test = funcq(); /* 指针函数返回值是指针 */    printf("\n\r 你的爱好 %s",test);        while(1);  //vc6.0 停留窗口;其他平台不用}char *funcq(){    char *Temp = "Love girl";    return Temp;}void FileFunc(){    printf("FileFunc\n");}void EditFunc(){    printf("EditFunc\n");}        

打印结果如下


第三步指针函数与函数指针产生关系(你懂得)(升级)

代码目的就是将用函数指针去代表指针函数展示;

我不太理解void * (*func)();我的理解就是指针的指针,我要研究下;明个写这块的代码。


原创粉丝点击