gpt4 book ai didi

c++ - 在执行函数指针时,使用地址运算符与不使用它的目的是什么?

转载 作者:可可西里 更新时间:2023-11-01 17:38:23 34 4
gpt4 key购买 nike

对于以下代码片段,为什么我要使用一个赋值而不是另一个?谢谢

void  addOne(int &x)
{
x +=1;
}

void (*inc)(int &x) = addOne; // what is the purpose of doing "addOne"
void (*inc)(int &x) = &addOne; // vs &addOne ??

int a = 10;
inc(a);

最佳答案

一个优于另一个的目的是 C 兼容性。 C 表示函数会自动衰减为指向函数的指针。为了兼容,C++ 也必须这样做。

请注意,当 C++ 引入新的函数指针类型(成员函数指针)时,它们不会自动衰减。因此,如果 C++ 委员会如愿以偿,您很有可能需要 &

关于c++ - 在执行函数指针时,使用地址运算符与不使用它的目的是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9957742/

34 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com