结构体与指针
来源:互联网 发布:数控编程代码大全 编辑:程序博客网 时间:2024/05/10 08:52
结构体与指针
例程1
typedef struct{ unsigned int a; unsigned int b; unsigned int c;}Test_T;void main(void){ Test_T Temp; Test_T *Test;//指向数组的指针 Test=&Temp; Temp.a=0; Temp.b=1; Temp.c=2; *(unsigned int *)((unsigned int)&(Test->a)+0)+=5; *(unsigned int *)((unsigned int)&(Test->a)+4)+=1; *(unsigned int *)((unsigned int)&(Test->a)+8)+=4; printf("a=%d,b=%d,c=%d\n",Temp.a,Temp.b,Temp.c); printf("sizeof(unsigned int)=%d\n",sizeof(int)); printf("sizeof(Test_T)=%d\n",sizeof(Test_T)); printf("&Temp.a=%d\n",&Temp.a); printf("&Temp.b=%d\n",&Temp.b); printf("&Temp.c=%d\n",&Temp.c); printf("Test=%d\n",*Test); printf("Test=%d\n",Test); printf("Test+1=%d\n",Test+1); printf("Test+1=%d\n",Test+2);}
输出结果
Test为指向结构体的指针,Test值为存放结构体内存的首地址,Test+1实际上指针移动了3*sizeof(unsigned int)。可以通过*Test来查询结构体中第一个成员的值
例程2
typedef struct{ unsigned int a[2]; unsigned int b; unsigned int c;}Test_T;void main(void){ Test_T Temp; Test_T *Test;//指向数组的指针 Test=&Temp; Temp.a[0]=8; Temp.b=1; Temp.c=2; printf("sizeof(unsigned int)=%d\n",sizeof(int)); printf("sizeof(Test_T)=%d\n",sizeof(Test_T)); printf("&Temp.a=%d\n",&Temp.a[0]); printf("&Temp.b=%d\n",&Temp.b); printf("&Temp.c=%d\n",&Temp.c); printf("Test=%d\n",Test); printf("*Test=%d\n",*Test);}
输出结果
0 0
- 结构体与指针
- 结构体与指针
- 指针与结构体
- 结构体与指针
- 指针与结构体
- 结构体与指针
- 结构体与指针
- 指针与结构体、函数指针
- C语言指针-----指针与结构体
- 结构体变量与指针
- 初识结构体与指针
- 结构体数组与指针
- 17 指针与结构体
- C++结构体与指针
- 结构体指针与函数
- 07指针 指针与数组 指针与字符串 指针与函数 结构体与指针 宏
- 结构体指针变量与结构体成员指针变量
- 结构体指针与结构体中变量的指针
- 机器视觉资料汇总(2)
- 递归计算多项式的值
- 自定义iOS上双击Home键截屏切换,保护应用程序隐私
- 关于android获取sd卡路径的方法
- 终端请求中文乱码问题解决
- 结构体与指针
- 定位
- 工单导入接口和标准API
- OpenStack商用需要跨越的坎 -- 1. 虚拟化平台的选择和整合
- josn转换hibernate的po对象出错问题
- 7620 Uboot编译配置
- JAVA反射机制之一
- js 控制页面的隐藏与显示
- 基于索引的SQL语句优化之降龙十八掌