我们所学的整型浮点型字符型等,都是内置的数据类型,编译器给我们提供好的数据类型。
而结构体属于用户自定义的数据类型,允许用户存储不同的数据类型,即一些类型集合组成的一个类型。
语法:struct 结构体名 { 结构体成员列表 };
通过结构体创建变量的方式有三种:
- struct 结构体名 变量名
#include
#include
using namespace std;
struct likes_idol
{
//成员列表
string name; //姓名
string country;
int age; //年龄
double height; //身高(米)
};
int main() {
//结构体变量创建方式1
struct likes_idol Micchi; //struct 关键字可以省略
Micchi.name = "道枝骏佑";
Micchi.country = "Japan";
Micchi.age = 19;
Micchi.height = 1.79;
cout << "姓名:" << Micchi.name <<" 国籍:"<<Micchi.country<< " 年龄:"
<< Micchi.age << " 身高:" << Micchi.height << endl;
}
- struct 结构体名 变量名 = { 成员1值 , 成员2值…}
struct likes_idol
{
//成员列表
string name; //姓名
string country;
int age; //年龄
double height; //身高(米)
};
struct likes_idol Micchi = { "道枝骏佑","Japan",19,1.79};//struct 关键字可以省略
cout << "姓名:" << Micchi.name <<" 国籍:"<<Micchi.country<< " 年龄:"
<< Micchi.age << " 身高:" << Micchi.height << endl;
- 定义结构体时顺便创建变量
struct likes_idol
{
//成员列表
string name; //姓名
string country;
int age; //年龄
double height; //身高(米)
}Micchi;
输出:
姓名:道枝骏佑 国籍:Japan 年龄:19 身高:1.79
tips:
1:定义结构体时的关键字是struct,不可省略
2:创建结构体变量时,关键字struct可以省略
3:结构体变量利用 *** 作符 ‘’.‘’ 访问成员
1.3结构体数组**作用:**将自定义的结构体放入到数组中方便维护
语法: struct 结构体名 数组名[元素个数] = { {} , {} , ... {} }
#include
#include
using namespace std;
struct likes_idol
{
//成员列表
string name; //姓名
string country;
int age; //年龄
double height; //身高(米)
};
int main() {
struct likes_idol h[3] =
{
{"白敬亭","China",28,1.83},
{"赵丽颖","China",32,1.65},
{"道枝骏佑","Japan",19,1.79}
};
//结构体变量创建方式1
for(int i;i < 3;i++)
{
cout<<h[i].name<<" "<<h[i].country<<" "<<h[i].height<<" "<<h[i].height<<endl;
}
system("pause");
return 0;
}
输出:
白敬亭 China 1.83 1.83
赵丽颖 China 1.65 1.65
道枝骏佑 Japan 1.79 1.79
1.4 结构体指针
作用: 通过指针访问结构体中的成员
- 利用 *** 作符
->
可以通过结构体指针访问结构体属性
#include
#include
using namespace std;
struct likes_idol
{
//成员列表
string name; //姓名
string country;
int age; //年龄
double height; //身高(米)
};
int main() {
struct likes_idol h[3] =
{
{"白敬亭","China",28,1.83},
{"赵丽颖","China",32,1.65},
{"道枝骏佑","Japan",19,1.79}
};
struct likes_idol *p = &h[0];
//结构体变量创建方式1
for(int i;i < 3;i++)
{
cout<<p->name<<" "<<p->country<<" "
<<p->height<<" "<<p->height<<endl;
p++;//指针依次访问h[i]
}
system("pause");
return 0;
}
输出:
白敬亭 China 1.83 1.83
赵丽颖 China 1.65 1.65
道枝骏佑 Japan 1.79 1.79
请按任意键继续. . .
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)