结构体成员常用的表示方法有两种:
一:结构体变量名.成员名
二:结构体指针变量->成员名或(*结构体指针变量).成员名
这两种方法都需要用到成员名,在一些需要循环访问的场景不方便引用。
由于结构体变量在内存是连续存放的,如果定义的结构体成员类型相同,可以通过定义成员类型指针变量指向结构体首个成员,成员个数就是循环次数,通过指针循环访问结构体成员。
#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
版权声明:本文为Bizulu001原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。