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/
c语言结构体指针的高级用法,向上向下强转
最新推荐文章于 2025-05-05 16:46:09 发布
本文深入探讨了C语言中结构体与指针的使用技巧,通过实例演示了如何利用结构体指针进行内存地址操作,包括类型转换与成员变量的访问。文章详细解释了向下强转和向上强转的概念及其应用,为读者提供了理解和实践结构体指针的强大工具。
777

被折叠的 条评论
为什么被折叠?



