请问下C++中的类型转换有关问题

请教下C++中的类型转换问题
大家好,我现在在看一段前人 编写的代码,其中里面有这样的语句

unsigned int len= *(unsigned int*)(pBuf + rdPos); 

其中pBuf是一段指向分配了内存的地址指针, rdPos是可读的指针位置,
定义是这样的:
  unsigned int rdPos;
unsigned char *pBuf ;

我想问的是: 
unsigned int len= *(unsigned int*)(pBuf + rdPos); 这条语句的意思是什么,我看很长时间,没有看明白,请各位帮忙解释一下,谢谢, 刚开始学VC++ 请多多理解,谢谢!

------解决方案--------------------
unsigned char与BYTE类型相同,就是一个字节,rdPos为一个无符号整型,假设值为10,
整个表达式从右向左解析,(pBuf+rdPos)指向pBuf后的第10个字节,假设pBuf+rdPos后的四个字节的值都为0xFF(即4个字节二进制位都为1),(unsigned int*)(pBuf + rdPos)把这个提针转化为一个无符号整型指针,此指针所指的数为这四个字节所成的无符号整数,即0xFFFFFFFF,
unsigned int len= *(unsigned int*)(pBuf + rdPos); 把所指的整数赋给len,即len = 0xFFFFFFFF,转化成10进制就是4294967295