定义
结构体是一种数据类型, 存放一组不同类型数据
struct Stu {
char* name;
char* num;
int age;
};
C结构体成员默认公有
C++结构体成员也默认公有, 但可使用访问控制(如private、protected)
使用
初始化
C++构造函数
Stu(char *name, char *num, int age){
this->name = name;
this->num = num;
this->age = age;
}
匿名赋值
定义结构体实例时, 不给该实例命名, 直接使用初始化列表进行赋值
- 示例, 匿名赋值
#include <stdio.h>
struct Point {
int x;
int y;
};
int main() {
// 匿名赋值
struct Point p1 = {10, 20};
// 直接使用匿名结构体, C99及C++支持
struct Point p2 = {.x = 30, .y = 40};
printf("p1: (%d, %d)\n", p1.x, p1.y);
printf("p2: (%d, %d)\n", p2.x, p2.y);
return 0;
}
结构体数组
#include <stdio.h>
int main() {
Stu s[3];
s[0] = Stu("WANG", "A-234", 19);
s[1] = Stu("Han", "A-235", 19);
s[2] = Stu("Liu", "A-236", 19);
for(int i = 0; i < 3; i++){
pritf("%s %s %d\n", s[i].name, s[i].num, s[i].age)
}
return 0;
}