一个微软的题目(关于联合体sizeof),求大牛详细分析下,顺便问问联合和结构的区别解决方案

一个微软的题目(关于联合体sizeof),急求大牛详细分析下,顺便问问联合和结构的区别
typedef union record
{
  LONG lIndex;  
  SHORT sLevel[6];  
  CHAR cPos;  
} REC_S;

REC_S stMax,*pMax;
CHAR str[] = “Hello” ;
CHAR *pChar = str ;
ULONG ulGrade = 10;
USHORT usClass = 10;
DOUBLE dWeight
UCHAR *pCharArray[10][10];

Sizeof(stMax/pMax/str/pChar/ulGrade/usClass/dWeight/pCharArray)的取值分别是多少?


------解决方案--------------------
32位系统:
12,联合体成员最大宽度
4,指针宽度
6,数组虽说某些时候和指针等价,但在sizeof运算时并不相同,字符str数组的大小为6,含末尾的\0,每个元素占1字节
4,指针宽度
4,long 宽度
2,short宽度
8,double宽度
400,100个元素,每个元素的类型是char *指针,大小为4,故总大小为100*4