一个小例子。
typedef struct
{
char par1;
char par2;
char par3
} TYP_STRU;
如果定义
TYP_STRU typ_arr[] =
{
{'a', 'b', 'c'},
{'d', 'e', 'f'},
{'g', 'h', 'i'},
{'j', 'k', 'l'},
...
}
1.
TYP_STRU *p = typ_arr + 1;
2.
TYP_STRU *p = (TYP_STRU *) ((int *) typ_arr + 1);
以上两种情况下
printf("%c,%c,%c\n",p->par1, p->par2, p->par3);
分别为:
d,e,f
和
b,c,d
以上,解释C语言数组类型和指针移位的单位。