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

在下这厢有礼了。


第一步意思理解:

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


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值