带取消引用和不带取消引用的函数有什么区别

What's the difference between function with dereference and without dereference

本文关键字:引用 取消 什么 区别 函数      更新时间:2023-10-16
f1, (*

f1), f2, (*f2) 有什么区别?(功能)和(功能)有什么区别?

#include <iostream>
using namespace std;
void function (char *s) {
    cout << s << endl;
}
int main () {
    void (*f1) (char*) = &function;
    void (*f2) (char*) = function;
    f1 ("f1 function without dereference.");
    (*f1) ("f1 function with dereference.");
    f2 ("f2 function without dereference.");
    (*f2) ("f2 function with dereference.");
    return 0;
}
f1、(*

f1)、f2、(*f2)之间有什么区别?

f1f2是函数指针。 (*f1)(*f2)是对函数的引用。函数指针和函数引用有什么区别?非常少,因为它们都可以使用完全相同的语法进行调用。但是,有关函数引用的更深入说明,请参阅此问题。

(功能)

和(功能)有什么区别?

function是一个函数。 &function是指向函数的指针。此处的一个极小的区别与以下事实有关:您可以将函数引用绑定到函数,但不能绑定到函数指针。

void (&fref1)(char*) = function; // compiles
void (&fref2)(char*) = &function; // does not compile

同样,请参阅链接的问题,了解您可能使用函数引用的可能原因(没有很多)。