结构体指针变量其实就是能够指向结构体变量类型的指针
定义方式也较简单 如先定义一个结构体数组 struct stu-info stu01,那么如果需要一个指针指向这个数组,指针就应当定义为struct stu_info *p 这时p就能指向结构体数组stu01,其余指针的用法也就跟普通指针变量类似
结构体内存开辟
1,找成员内占用空间最大的成员类型,以它的占用空间作为最小开辟单位,如结构体内为char short 则按2字节为最小开辟单位,如结构体内为 char short int则按4字节为最小开辟单位
2、填充按基本单位1、2、4进行对齐填充
typedef struct {
char ch01; 占1字节后面空1字节
short sh01; 占2字节
int ints; 占4字节
}Memsize; sizeof( memsize )=8
typedef struct{
char ch01; //1 ff
short sh01; //2 ff ff
int ints; //4 ff ff ff ff
}Mem_size03;
Mem_size03 stu03;
char *p=&stu03;
stu03.ch01='c';
stu03.sh01=0x1234; //十六进制数 数组常量
stu03.ints=0x56789ABC;
printf("%#p\n",p) ; 0X000000000062FDE0
printf("%x\n",*(p)); 63