带取消引用和不带取消引用的函数有什么区别
What's the difference between function with dereference and without dereference
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)之间有什么区别?
f1
和f2
是函数指针。 (*f1)
和(*f2)
是对函数的引用。函数指针和函数引用有什么区别?非常少,因为它们都可以使用完全相同的语法进行调用。但是,有关函数引用的更深入说明,请参阅此问题。
(功能)和(功能)有什么区别?
function
是一个函数。 &function
是指向函数的指针。此处的一个极小的区别与以下事实有关:您可以将函数引用绑定到函数,但不能绑定到函数指针。
void (&fref1)(char*) = function; // compiles
void (&fref2)(char*) = &function; // does not compile
同样,请参阅链接的问题,了解您可能使用函数引用的可能原因(没有很多)。
相关文章:
- C++取消引用指针.为什么会发生变化
- 使用取消引用的指针的多态性会产生意外的结果.为什么?
- 取消引用运算符不能重载
- 在他自己的方法中,有可能将一个对象取消引用到另一个对象吗
- C++ 关于指针取消引用的技术问题
- 没有取消引用/解包对象的标准方法?
- 列表 iter 不取消引用 使用列表进行插入排序
- 在这个函数中是有缺陷的,因为取消引用 null 是无效的,所以我想更改代码
- 取消引用结束指针到数组类型的一个
- 取消引用向量时出现问题
- 取消引用指向整数的指针时获得不同的结果
- C++:取消引用十六进制值,有点语法问题
- C/C++ 取消引用错误:在空检查之前取消引用
- 取消引用后C++空测试
- 立即取消引用unique_ptr
- 如何在不使用临时变量的情况下取消引用返回指针的函数的返回值?
- 取消引用 void 指针以将值分配给结构
- boost_multi_index迭代器取消引用给出常量
- 为什么"std::uninitialized_copy"通常取消对未初始化内存的迭代器的引用不是未定
- 矢量迭代器不能与 std::shared_ptr<> 取消引用