结构体成员如何用for循环依次访问

结构体成员常用的表示方法有两种:

一:结构体变量名.成员名

二:结构体指针变量->成员名或(*结构体指针变量).成员名

这两种方法都需要用到成员名,在一些需要循环访问的场景不方便引用。

由于结构体变量在内存是连续存放的,如果定义的结构体成员类型相同,可以通过定义成员类型指针变量指向结构体首个成员,成员个数就是循环次数,通过指针循环访问结构体成员。

#include <iostream>

int main()
{   
	typedef struct
	{
		int member0;
		int member1;
		int member2;
		int member3;
		int member4;
		int member5;
		int member6;
		
	}data_typedef_struct;    //自定义结构体
	data_typedef_struct data; //定义一个结构体变量data
	int* p = (int *) & data;  //定义一个int型的指针变量p 该指针指向结构体变量data的首地址
	int length = sizeof(data_typedef_struct) / sizeof(int); //结构体成员个数
	for (int  i = 0; i < length; i++) //结构体成员填充
	{
		*(p + i) = i;
	}
	for (int i = 0; i < length; i++)
	{
		printf("data_%d==%d\r\n",i,*(p+i)); //输出结构体变量data所有成员
	}
	printf("data.member0=%d\r\n", data.member0);
	printf("data.member1=%d\r\n", data.member1);
	printf("data.member2=%d\r\n", data.member2);
	printf("data.member3=%d\r\n", data.member3);
	printf("data.member4=%d\r\n", data.member4);
	printf("data.member5=%d\r\n", data.member5);
	printf("data.member6=%d\r\n", data.member6);
}

运行结果:
data_0==0
data_1==1
data_2==2
data_3==3
data_4==4
data_5==5
data_6==6
data.member0=0
data.member1=1
data.member2=2
data.member3=3
data.member4=4
data.member5=5
data.member6=6

  • 2
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值