请C预言功底扎实的朋友帮忙看一个小疑点

请C预言功底扎实的朋友帮忙看一个小问题
一个关于类型匹配的问题。

首先我Typedef一个类型
typedef struct
{
unsigned char sub;
unsigned int  len;
}SubParaAttribTyp, *pSubParaAttribTyp;

然后用SubParaAttribTyp定义两个个数组
SubParaAttribTyp const SubTBL_AAA[2] =
{
{1,2},
{3,4}
};

SubParaAttribTyp const SubTBL_BBB[2] =
{
{1,2},
{3,4}
};

然后我想把SubTBL_AAA和SubTBL_BBB的首地址整合到一个总数组里
const SubParaAttribTyp* const ReferSubTBL[2]=
{
SubTBL_AAA,
SubTBL_BBB
}

这样写没有问题,但是如果写成
const pSubParaAttribTyp const ReferSubTBL[2]
就会报错

但是个人认为SubParaAttribTyp*和pSubParaAttribTyp应该是一样的,所以搞不明白为什么第二种写法会爆类型不匹配的错误
------解决思路----------------------
因为 const pSubParaAttribTyp const 的类型是 SubParaAttribTyp* const,所以匹配不上 const SubParaAttribTyp*.
------解决思路----------------------
1、SubParaAttribTyp*和pSubParaAttribTyp确实是一样的,但是const SubParaAttribTyp*  与const pSubParaAttribTyp 并不
2、SubTBL_AAA 和SubTBL_BBB都是const SubParaAttribTyp*类型