初始化结构体
struct huiyan{string id;int count;
}
int main(){huiyan h = {"123123", // id3 // count}
};
// c++11初始化
huiyan h { "123123", // id3 // 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
枚举量的值我们可以指定,但是必须是整数