C++ 一个的参数类型的有关问题

C++ 一个的参数类型的问题
对于const限定修饰符的问题:
(1)char   const&   max1(char   const&   a,char   const&   b)
{
          //do   something...
          return   b;
}
(2)char   const*   const&   max2(char   const*   const&   a,
                                                    char   const*   const&   b)
{
          //do   something...
          return   a;
}
对于max1的2个参数a和b,是可以理解的:传2个常量引用给max1,即a和b的值在函数max1里不能改变.

但对于是max2的2个参数a和b,我就不是很理解了,难道是指向一个char类型常量的常量指针?难道是指针a、b的值和它们所指向的变量的值在函数里都不能改变?

还请指点.....

------解决方案--------------------
难道是指针a、b的值和它们所指向的变量的值在函数里都不能改变?
===========
首先,
a b 所不是指针,
是指针的引用。

引用只能初始化,不能赋值,
所以a b的值是不能修改的。

然后,char const* const& a
第一个 const 即修饰了 a指向的内容的常量性,
也就是 它们所指向的变量的值在函数里都不能改变。

至于第二个const的作用,
应该是因为“不能将const类型的对象传递给non-const类型的引用”。