1、结构体到结构体指针之间的转换
a、结构体指针的强制类型转换即结构体的数据成员在内存段当中的重新分配,结构体的存储“内存对齐”请参看上篇博客,该论述实例如下:
#include
#include
struct A{
int num;
};
struct B{
int num;
char type;
int age;
};
int main()
{
struct A a;
a.num = 5;
char* tmp1 = (char *)(&(a.num));
tmp1 = tmp1 + 4;
*tmp1 = 'a';
int *tmp2 = (int *)(&(a.num));
tmp2 = tmp2 + 2;
*tmp2 = 32;
struct B *b = (struct B *)(&a);
std::cout << b->num << " " << b->age << " " << b->type << std::endl;
std::cout << sizeof(*b) << std::endl;
system("pause");
return 0;
}
输出结果: 5 32 a 12