花开自有丶花落 发表于 2016-7-17 16:38:13

C++函数指针

既然函数指针是p2一个地址,为什么还要用p2(av,3),来输出函数地址,我直接输出p2后却只有1,这是为什么

疾风。意破天晴 发表于 2016-7-17 16:38:14

因为:类似于const double (*p2)(const double *,int ) = f1这样定义p2才是一个函数指针,才是一个地址。p2(av,3) == (*p2)(av,3)
所以:const double *(*p2)(const double *,int ) = f1这样定义p2(av,3) == (*p2)(av,3)才是一个地址,单独的p2不表示任何含义。{:5_92:}

花开自有丶花落 发表于 2016-7-17 16:38:54

主函数倒数第三行

倾天 发表于 2016-7-20 19:08:18

其实是:
operator << (cout, const double *p){
    cout << *p;
}
也就是cout << p2 等于 cout << *p2
要是你要输出地址的话要这样 : cout << (void *)p2
这样才会输出地址

倾天 发表于 2016-7-20 19:09:25

倾天 发表于 2016-7-20 19:08
其实是:
operator

这是cout直接帮你输出内容,要是用printf就不会了。。。
页: [1]
查看完整版本: C++函数指针