我是 C ++ 的初学者,我有一个问题,理解指向函数的指针:
main()
{
double pam(int);
double (*pf)(int);
pf = pam;
double x = pam(4);
double y = (*pf)(5);
double y = pf(5);
}
(*pf)()
和pf()
如何相同,其中pf
是指向函数的指针?
其他指针和指向函数的指针有什么区别??
如何 * pf()和 pf()是相同的,其中 pf 是指向函数的指针?
它们不一样(因为运算符优先)。如果你的意思是(*pf)()
和pf()
实际上是相同的,那么这是因为语言的规则是这样说的。具体来说,规则说:
[expr.call]
对于非成员函数或静态成员函数的调用,后缀表达式应为引用函数的左值 (在这种情况下,函数到指针的标准转换 ([conv.func]) 被抑制)。
在(*pf)()
的情况下,表达式(*pf)
是引用函数的左值,而在pf()
的情况下,表达式pf
具有函数指针类型。
其他指针和指向函数的指针有什么区别??
主要区别在于函数指针指向函数,指向对象的指针指向对象。
本站系公益性非盈利分享网址,本文来自用户投稿,不代表码文网立场,如若转载,请注明出处
评论列表(66条)