这两种声明有什么不同呢?
int operate(int (*func)(int, int), int a, int b){
return (*func)(a, b);
}
并且
int operate(int func(int, int), int a, int b){
return func(a, b);
}
这两个看起来也是等价的:operate(sum, 1, 1)
和 operate(&sum, 1, 1)
如果我将函数sum
作为2个数字的函数传递给func
,结果仍然相同。为什么?
(*func)
视为函数,func
视为它所衰减指向的指针,否则是没有发生衰减的。 - R.. GitHub STOP HELPING ICEoperate(sum, 1, 1)
和operate(&sum, 1, 1)
的区别。 - Oliver Charlesworth