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

  • Post author:
  • Post category:其他


在下这厢有礼了。

第一步意思理解:

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)();我的理解就是指针的指针,我要研究下;明个写这块的代码。



版权声明:本文为zw515370851原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。