又是指针

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

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

指针啊指针,蛋疼的真是让人又恨又爱,不多说了,程序如下


#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;
}



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值