求教联合体union内是否可以声明定义指针类成员,不同类型的指针成员长度是如何决定的

求教联合体union内是否可以声明定义指针类成员,不同类型的指针成员长度是怎么决定的?
如题,我想在教联合体union内是否声明定义指针类成员,那么我的union分配的长度是多少?我要方位指针成员的方式如
union{
    int *  i;
    char * ch;
}x;
*x.i=1;
*x.ch="hello";
我要访问“hello”中的“o”,该怎么访问?

------解决方案--------------------
指针长度都是4个字节的..
------解决方案--------------------
int main()
{
union{
     int *  i; 
  char * ch;
    }x;
   x.i=1;
   x.ch= "hello";
   printf("string=%c\n",x.ch[4]);
}
------解决方案--------------------
int main()
{
union{
     int *  i; 
   char * ch;
    }x;
   x.i=1;
   x.ch= "hello";
   printf("string=%c\n",*(x.ch+4));
}