天天看点

c语言结构体指针的高级用法,向上向下强转

typedef unsigned int  u32;
typedef unsigned short u16;
typedef unsigned char  u8;


#include "string.h"
#include "stdio.h"
#include "stdlib.h"

//原理:结构体指针内存地址是连续的
typedef struct{
    int name;
    int age;
    int year;
}HansenTest_t;

int main(void)
{
	HansenTest_t *Hansen = (HansenTest_t*)malloc(sizeof(HansenTest_t));
	Hansen->name = 10;
	Hansen->age = 18;
	Hansen->year = 101;
	
	//获取其中一个值向下强转
	int *p = (int*)Hansen;
	printf("%d\n",*p);
	
	//根据P的首地址强制转换获得其他成员变量的值 向上强转
	HansenTest_t *p2 = (HansenTest_t*)p;
	printf("%d,%d,%d",p2->name,p2->age,p2->year);
}

//C语言在线测试网站
//http://www.dooccn.com/c/
           

继续阅读