带取消引用和不带取消引用的函数有什么区别
What's the difference between function with dereference and without dereference
f1, (*f1), f2, (*f2) 有什么区别?
(function) 和 (&function) 有什么区别?
#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;
}
What's the difference between f1, (*f1), f2, (*f2) ?
f1
和 f2
是函数指针。 (*f1)
和 (*f2)
是对函数的引用。函数指针和函数引用有什么区别?非常少,因为它们都可以使用完全相同的语法调用。但是,请参阅 this question 以获得对函数引用的更深入的解释。
and what's the difference between (function) and (&function) ?
function
是一个函数。 &function
是指向函数的指针。这里有一个极其微小的区别,即您可以将函数引用绑定到函数,但不能绑定到函数指针。
void (&fref1)(char*) = function; // compiles
void (&fref2)(char*) = &function; // does not compile
同样,请查看链接的问题,了解您可能使用函数引用的可能原因(数量不多)。
f1, (*f1), f2, (*f2) 有什么区别? (function) 和 (&function) 有什么区别?
#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;
}
What's the difference between f1, (*f1), f2, (*f2) ?
f1
和 f2
是函数指针。 (*f1)
和 (*f2)
是对函数的引用。函数指针和函数引用有什么区别?非常少,因为它们都可以使用完全相同的语法调用。但是,请参阅 this question 以获得对函数引用的更深入的解释。
and what's the difference between (function) and (&function) ?
function
是一个函数。 &function
是指向函数的指针。这里有一个极其微小的区别,即您可以将函数引用绑定到函数,但不能绑定到函数指针。
void (&fref1)(char*) = function; // compiles
void (&fref2)(char*) = &function; // does not compile
同样,请查看链接的问题,了解您可能使用函数引用的可能原因(数量不多)。