对指针的声明没问题,问题处在声明后的使用。
众所周知,函数指针分为两类
1.普通函数指针
声明:void f( ) { };
void (*p)( ) { };
请问,对p赋值时正确的是:
A: p=f
B: p=&f
使用指针函数正确的是:
C: p( );
D: (*P)( );
PS:我自己编译运行过,两种方式都正确,请问这是什么原因?
2.成员函数指针
声明: void Time::f( ) { }
void (Time::*p)( ) { }
请问赋值时正确的是:
E: p=Time::f
F: p=&Time::f;
使用指针函数时正确的是:
G (t.p)( )
H (t.*p)( )
题目很长,谢谢各位帮我解决下这个问题,是两种方式都可以吗?是否有什么区别呢?