21xrx.com
2024-12-27 20:30:33 Friday
登录
文章检索 我的文章 写文章
C++如何遍历结构体?
2023-07-11 09:24:01 深夜i     --     --
C++ 遍历 结构体

C++中,结构体是一种自定义的复合数据类型,可以由不同类型的数据成员组成,用来描述一个具有多个属性的对象。在实际编程中,通常需要对一个结构体中的数据进行遍历,以便对其进行处理或输出。下面介绍几种C++中遍历结构体的方法。

一、使用for循环遍历结构体

使用for循环来遍历结构体时,需要使用结构体名和结构体变量名来访问结构体的数据成员,循环变量i表示访问的次数,例如:


struct Student{

  char name[20];

  int age;

  char gender;

};

int main(){

  Student stu = 'M';

  for(int i = 0; i < sizeof(stu)/sizeof(stu.name[0]); i++){

    cout << stu.name[i] << endl;

  }

  return 0;

}

上述代码中,使用循环变量i分别访问了结构体Student中的每个字符数据成员,并输出到屏幕上,每次输出一个字符。

二、使用指针遍历结构体

C++中可以使用指针的方式来遍历结构体中的数据成员,可以使用指向结构体的指针来操作结构体的数据成员,例如:


struct Student{

  char name[20];

  int age;

  char gender;

};

int main(){

  Student stu = 19;

  Student *p = &stu;

  cout << (*p).name << endl;

  cout << (*p).age << endl;

  cout << (*p).gender << endl;

  return 0;

}

从上述代码来看,使用指针需要对指针进行解引用操作,即使用(*)来表示指针指向的结构体,然后使用"."来访问结构体中的数据成员。

三、使用数组下标遍历结构体

C++中结构体的数据成员可以视为一个数组,因此也可以使用数组下标的方式遍历结构体中的每个数据成员,例如:


struct Student{

  char name[20];

  int age;

  char gender;

};

int main(){

  Student stu = 19;

  for(int i = 0; i < sizeof(stu)/sizeof(stu.name[0]); i++){

    cout << stu.name[i] << endl;

  }

  cout << stu.age << endl;

  cout << stu.gender << endl;

  return 0;

}

从上述代码来看,使用数组下标的方式遍历结构体,同使用for循环遍历结构体的方式非常相似。利用结构体的内存分配特性,可以通过循环变量来访问结构体中的每个数据成员。

综上,C++中遍历结构体的方法有很多种,常用的包括使用for循环、数组下标和指针来访问和操作结构体中的每个数据成员,不同的方法可以根据不同的场景和需求来选用。

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复