指针啊指针,蛋疼的真是让人又恨又爱,不多说了,程序如下
#include <stdio.h>
#include <stdlib.h>
#include <MEMORY.h>
typedef struct test
{
float fNum;
char sz[512];
}TEST_STRUCT;
int main(void)
{
TEST_STRUCT t;
float a,b;
float *c,*d;
a = 1;
b = 2;
memcpy((char*)&t.sz + sizeof(t.fNum), &a, sizeof(a));
memcpy((char*)&t.sz + sizeof(a) + sizeof(t.fNum), &b, sizeof(b));
c = (float *)(t.sz + sizeof(a) + sizeof(t.fNum));
d = (float *)(t.sz + (sizeof(a)));
printf("\t%f\t%f\n\n", *c, *d);
printf("\t源地址(char*):%x 源地址:%x\n\n\
用(char *)转换后地址:%x 转换前地址:%x\n\n\
地址实验1:%x 地址2:%x\n\n\n",
(char*)&t.sz, &t.sz,
(char*)&t.sz + sizeof(t.fNum), &t.sz + sizeof(t.fNum), //这个如果不强制转化一下,则以t.sz为度量单位
(char*)&t.sz + sizeof(t.fNum) * sizeof(char), (char*)&t.sz + sizeof(t.fNum) * sizeof(t.sz));
return 0;
}

本文详细解析了指针的基本概念、操作方法及内存布局原理,通过实例展示了如何利用指针进行高效数据访问与内存管理。
4255

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



