c++函数指针typedef的问题?

img


函数指针别名的问题,为什么一个变量 能变成函数呢?1111111111111

typedef将函数指针定义为别名p,所以p不是变量名,表示一个函数指针,所以可以。相当于p就是个函数。return错误是因为函数的返回类型是void,但你的函数要求返回int,类型不一致

typedef的功能是定义新的类型。第一句就是定义了一种p的类型,并定义这种类型为指向某种函数的指针,这种函数以一个int为参数,此处应该不是void,而是int类型返回值你这样的程序12行就不会报错了。这是一个例子

#include <stdio.h>

typedef int(*p)(int a);

int pr(int a)
{
    p f = pr; 
    return a;
}
int main(void)
{
    p f = pr;  
    printf("%d",f(6));        
    return 0;   
}

img

不知道你这个问题是否已经解决, 如果还没有解决的话:

如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!
PS:问答VIP年卡 【限时加赠:IT技术图书免费领】,了解详情>>> https://vip.csdn.net/askvip?utm_source=1146287632