c++中的结构体
初始化结构体
struct huiyan{
string id;
int count;
}
int main(){
huiyan h = {
"123123", // id
3 // count
}
};
// c++11初始化
huiyan h {
"123123", // id
3 // count
};
// 零值初始化
huiyan h {};
结构体数组
#include <iostream>
#include <vector>
using namespace std;
struct Infos {
std::string address;
std::string email;
};
struct Inflatable {
int age;
std::string name;
Infos infos;
};
int main() {
Inflatable inf[3] = {
{1, "a", {"地址1", "1331@1331.com"}},
{2, "b", {"地址1", "1331@1332.com"}},
{3, "c", {"地址1", "1331@1333.com"}},
};
for (int i = 0; i < 3; i++) {
cout << inf[i].name << endl;
}
return 0;
}
访问指针结构体成员
创建动态结构时,不能使用.
访问成员,因为这种结构没有名称只有地址,那想访问需要使用->
来访问成员。(当结构体类型变量为指针类型用->
访问成员否则用.
)
struct Inflatable {
int age;
std::string name;
Infos infos;
};
Inflatable* inf2 = new Inflatable;
inf2->age = 4;
结构体传给函数注意事项
为了避免结构体传给函数时拷贝结构体副本的系统开销,可以将结构体地址传过去,如果不希望函数修改结构体则加const
关键词。
枚举enum
enum colors {red, green, blue};
0 1 2
上面的枚举会讲枚举的值red, green, blue
作为枚举量,从0开始累加。
enum colors {red, green = 4, blue};
0 4 5
枚举量的值我们可以指定,但是必须是整数