考虑下面的代码,它声明一个函数指针,并将其指向一个函数。
void MyIntFunction( int x ){
std::cout << x << '\n';
}
void ( *funcPtr )( int ) = MyIntFunction;
void ( *funcRef )( int ) = &MyIntFunction;
(*funcPtr)( 2 );
(*funcRef)( 2 );
这个代码在我的Xcode中运行良好,问题是,在分配函数指针时,MyIntFunction
和&MyIntFunction
之间有什么区别
答案 0 :(得分:3)
正式MyIntFunction
是函数类型,&MyIntFunction
是指向函数的指针。但是,函数类型在几乎所有上下文中都衰减到指针到函数类型,因此在此上下文中使用MyIntFunction
和&MyIntFunction
之间没有真正的区别。
请注意,发布的代码中的任何位置都没有引用。 funcPtr
和funcRef
都是指向函数的指针。