结构体指针有关问题

结构体指针问题
typedef   struct   _VDISK_CTX
{
        handle h   ;
        PVOID lpBackupBuffer   ;
        DWORD dwIndexSize   ;
       
}VDISK_CTX   ,   *   PVDISK_CTX   ;

代码见上部分
不知到用
                  VDISK_CTX     a;
                  VDISK_CTX     *a;
                  PVDISK_CTX     a;
                  PVDISK_CTX     *a;
这些定义有什么区别阿?谁能给详细解答一下阿?




------解决方案--------------------
VDISK_CTX a; //定义一个结构体a
VDISK_CTX *a; //定义一个结构体指针a
PVDISK_CTX a; //定义一个结构体指针a
PVDISK_CTX *a;//定义一个结构体指针的指针a


typedef int* INT;
是一个道理


------解决方案--------------------
VDISK_CTX a;
======
定义结构体对象

VDISK_CTX *a;
=======
定义结构体指针变量

PVDISK_CTX a;
=======
同上因为PVDISK等价于VDISK_CTX *


PVDISK_CTX *a;
=======
定义指向结构体指针的指针变量,等价于VDISK_CTX **a;