(c++)结构体数组的创建和元素访问(指针访问和.访问)
结构体就是自己定义的数据类型,和int double char 的区别就是后者是这种语言自带的,而结构体是我们自己定义的,使用方法上和后者没什么大的区别。
代码创建了结构体student,可以理解为定义了一个自己使用的“关键字”student。然后创建了s1[ ]这个结构体数组,s2这个结构体变量,分别通过.访问(变量名访问)和->访问(指针访问)来介绍结构体变量和结构体数组的赋值和访问。
#include<iostream>
#include<string >
using namespace std;struct student
{string name;int age;
};int main() {//创建变量时候赋初值(要按照顺序依次赋)student s1[3] = {{"李 四",24},{"张 三",21 },{"王 五",25}};//创建后通过.来访问元素并且赋初值student s2;s2.age = 100;s2.name = "老妖怪";//p1指针指向结构体数组s1的首地址(数组名就是数组首地址)student* p1 = s1;//p2指针指向结构体s2的地址(对于变量来说,要加&取地址符)student* p2 = &s2;//表头cout << "姓名:\t" << "年龄:\t" << endl;//1.数组访问结构体数组元素for (int i = 0; i < 3; i++){cout << s1[i].name <<"\t"<<s1[i].age<<"\t" << endl;}cout << endl;//2.指针访问结构体数组元素for (int i = 0; i < 3; i++){cout << p1->name << "\t" << p1->age << "\t" << endl;p1++;}cout << endl;//3.指针访问结构体元素cout << p2->name << "\t" << p2->age << "\t" << endl;//3.1用指针修改s2的元素后再访问p2->name = "老妖精";p2->age = 1000;cout << p2->name << "\t" << p2->age << "\t" << endl;system("pause");return 0;
}
运行结果: