我有一个朋友,叫做阮白筠(无中生友),然后我想向别人介绍她,然后就定义如下:
#include<iostream>
#include<string>
using namespace std;
int main() {
string name;
string aihao;
return 0;
}
这样子看上去也没有什么问题,但是当介绍多个人的时候,每个人都有自己的名字,爱好,这时整个代码就会变得杂乱不堪,影响代码的可读性,并且数组只能储存一种数据类型,而结构则可以保存多种数据类型,这时你就可以把一个人定义为一个结构,里面包含他的特性,定义规则如下:
1,定义结构描述(描述储存结构中的数据类型)
2,创建结构变量(按描述创建数据类型)
#include<iostream>
#include<string>using namespace std;
struct baiyun {
string name;
string zuoyouming;
};#c++不提倡使用外部变量,但提倡使用外部结构声明,另外在外部声明符号常量通常更合理(用标识符表示一个常量)
int main() {
baiyun bb = {
"baiyun"
"ddd"};
baiyun dd = {};
getline(cin, dd.name);
getline(cin, dd.zuoyouming);
cout << dd.name << dd.zuoyouming;
cout << bb.name << bb.zuoyouming;
return 0;
}
还有一种简单的结构初始化方法
#include<iostream>
#include<string>using namespace std;
int main() {
struct baiyun(这个就是对象) {
string name;
string zuoyouming;
}dd ={
"baiyun"
"ddd"}, bb={"2",
"3" };
cout << dd.name << dd.zuoyouming;
cout << bb.name << bb.zuoyouming;
return 0;
}
c++结构初始化
c++也支持将列表初始化用于结构,此外也不允许缩窄转换
https://blog.csdn.net/dai_peixian/article/details/52767057
(这里是之前看的一篇比较不错的关于缩窄转换的文章)
结构数组
可以创建元素为结构的数组,方法和创建基本类型数组完全相同,例如要创建一个包含100个inflatable结构的数组,例如:
inflatable gifts[100];
gifts将是一个结构数组,其中每个元素(gifts[0])都是结构对象,可以与成员运算符一起使用:
gifts[0].name(name为定义的变量名)
#include<iostream>
#include<string>using namespace std;
struct baiyun {
string name;
string interest;
int year;
};
int main() {
baiyun dd[2]{
{"白筠","读书",19},
{"阮白筠","运动",18}
};
cout << dd[1].name;
return 0;
}
因为 dd是一个数组,所以可以用它和句点运算符来访问结构成员