Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 为什么任何函数的指针总是显示一个?_C++_Pointers_Function Pointers_Stack Trace_Function Calls - Fatal编程技术网

C++ 为什么任何函数的指针总是显示一个?

C++ 为什么任何函数的指针总是显示一个?,c++,pointers,function-pointers,stack-trace,function-calls,C++,Pointers,Function Pointers,Stack Trace,Function Calls,我正在尝试做一些类似的事情 #include <iostream> using namespace std; void foo () { void (*fooptr) (void) = foo; cout << fooptr << endl; } int main () { void (*fooptr) (void) = foo; foo (); return 0; } #包括 使用名称空间std; void foo(){ 无效(*

我正在尝试做一些类似的事情

#include <iostream>

using namespace std;

void foo () {
  void (*fooptr) (void) = foo;
  cout << fooptr << endl;
}

int main () {
  void (*fooptr) (void) = foo;
  foo ();
  return 0;
}
#包括
使用名称空间std;
void foo(){
无效(*fooptr)(无效)=foo;

太长了,读不下去了,代码不可能超载:代码> >可能的副本:TL;DR:Case<代码> FoopTr> <代码> >代码> Value*/Cuff>。如果它不工作,那么就不好了…函数指针不是指向函数调用的堆栈框架的指针,而是指向函数转换代码(int)的指针。fooo:为什么值是一?我不知道,但是值总是一样的:正如我说的,这就是函数代码的位置为什么定义了从函数指针到bool的转换?它的目的是什么?@Manu343726:与常规指针一样,如果为null,它将转换为
false
,否则将转换为
true
,因此您可以编写例如
if(fooptr)fooptr();
cout << reinterpret_cast<void*>(fooptr) << std::endl;