首页 新闻 会员 周边

使用函数指针调用函数,加*与不加*的意义上有什么区别?

0
悬赏园豆:10 [已解决问题] 解决于 2016-05-05 08:42
#include <iostream>

using namespace std;

char fun(char *str)
{
    return str[0];
}

void main()
{
    char *s = "one", a[5] = {0}, (*f1)(char *) = fun, ch = 'a';
    
    char ans = f1(&ch);
    cout << ans << endl;

    ans = (*f1)(s);
    cout << ans << endl;

    ans = f1(s);
    cout << ans << endl;

    cout << f1 << endl;
    cout << *(f1) << endl;
    /*
    输出结果:
    a
    o
    o
    001F1032
    001F1032
    */
}

从输出结果上来看,加*与不加*的结果是一样的.

总感觉写法不一样,意义上应该有不同,求解答!!!

c++ c
leungcnblogs的主页 leungcnblogs | 初学一级 | 园豆:162
提问于:2016-05-04 17:38
< >
分享
最佳答案
1

没有不同,两个都是正确的语法。加*表示使用指针指向的函数,而函数名本身就是地址,不加*号也说得通,所以两者都被看做是正确语法,现在的编译器都支持这两种写法

收获园豆:10
灵枢 | 菜鸟二级 |园豆:297 | 2016-05-04 17:56
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册