结构体指针变量及结构体内存的开辟

本文探讨了结构体指针变量的定义及其使用,强调了指针如何指向结构体数组。同时,介绍了结构体内存开辟的原则,包括以最大成员类型确定最小开辟单位和按照基本单位进行对齐填充的方法,并通过一个具体的例子`Memsize`说明了结构体大小的计算。
摘要由CSDN通过智能技术生成

结构体指针变量其实就是能够指向结构体变量类型的指针

定义方式也较简单    如先定义一个结构体数组   struct  stu-info   stu01,那么如果需要一个指针指向这个数组,指针就应当定义为struct  stu_info   *p         这时p就能指向结构体数组stu01,其余指针的用法也就跟普通指针变量类似

结构体内存开辟

1,找成员内占用空间最大的成员类型,以它的占用空间作为最小开辟单位,如结构体内为char  short 则按2字节为最小开辟单位,如结构体内为 char  short  int则按4字节为最小开辟单位

2、填充按基本单位1、2、4进行对齐填充

typedef  struct {

        char  ch01;     占1字节后面空1字节

        short sh01;      占2字节

        int   ints;             占4字节

}Memsize;                              sizeof(  memsize )=8

	typedef struct{
		char ch01;		//1     ff   
		short sh01;		//2     ff  ff
		int   ints; 	//4		ff  ff  ff ff
	}Mem_size03;	
	Mem_size03  stu03;	
    

    char *p=&stu03;
	stu03.ch01='c';
	stu03.sh01=0x1234;	//十六进制数 数组常量 
	stu03.ints=0x56789ABC; 

    printf("%#p\n",p) ;          0X000000000062FDE0
	printf("%x\n",*(p));               63
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值