几个疑问请大家帮忙解答一上

几个疑问请大家帮忙解答一下
如下所示,有两个函数的声明:
(1)[code=C/C++][/code]void CutBoundaryRec (const Point3d & pmin, const Point3d & pmax,GradingBox * box);
(2)[code=C/C++][/code]void FindInnerBoxesRec ( int (*inner)(const Point3d & p),GradingBox * box);
在1中,前两个形参用的是赋址运算符,而第三个则用的是指针运算符,这两种方式有啥区别呢?我的理解里是差不多的。
在2中,函数的第一个形参怎么那么奇怪啊,用了两个括号,第二个括号我能看懂,跟普通的引用一样,那第一个括号在这里是用来干什么呢?
以上两个问题,请高手帮忙解答一下,谢谢。

------解决方案--------------------
第一个中指针和引用函数参数入栈有差别
第二个感觉很奇怪,应该是强转,p的类型不能直接强转成int,所以通过中间类型inner进行强转,先转换成*inner再转换成int(//这个是猜测,楼主可以试着自己验证下)
------解决方案--------------------
第一个,引用相当于并且本质上就是一个常量指针,注意是相当于和本质上,扯什么两者写法不一样的一边去
区别?引用写起来方便,引用始终如一,引用不能为空,指针可以移动,指针可以为空,视具体需求和个人习惯决定用哪个

第二个,那是一个函数指针的声明,去查函数指针是什么东西吧
------解决方案--------------------
在1中,前两个形参和第三个形参有很大的不同吧,第三个参数是解引用指针。
在2中,怀疑第一个括号是强制类型转换。。
------解决方案--------------------
探讨

第一个,引用相当于并且本质上就是一个常量指针,注意是相当于和本质上,扯什么两者写法不一样的一边去
区别?引用写起来方便,引用始终如一,引用不能为空,指针可以移动,指针可以为空,视具体需求和个人习惯决定用哪个

第二个,那是一个函数指针的声明,去查函数指针是什么东西吧

------解决方案--------------------
1、指针 其实还是值的拷贝,由于地址唯一性才能够使访问同一个对象。
区别你可以对 引用的对象取二级指针,然后对指针的参数也取地址,你会发现两者地址是不一样的。
2、函数指针,如果你专攻C,你必须要了解这个声明方式,如果你搞C++,了解虚函数就懂这个了。
------解决方案--------------------
1. 前面的传个值进去就ok 后面的要传地址

2.百度右左法则
------解决方案--------------------
第一个是常引用,const Point3d & pmin。
第二个 int (*inner)(const Point3d & p)
应该是函数指针么。

int (*fn)(int a);
fn相当于函数地址。
------解决方案--------------------
第一个函数分别为引用,引用,指针,你问的其实就是引用与指针的区别,自己可以上网查一下,还是有些区别的,这玩意面试什么的也会考的
第二个函数分别为指针(函数),指针