【笔记】C++的结构体

前言

C++的结构体学习笔记

定义结构体

1
2
3
4
5
struct 结构体名
{
成员变量类型 成员变量名
...
};

创建结构体变量

1
struct 结构体名 结构体变量名;
  • 创建结构体变量时,可以省略struct关键字

创建结构体变量时直接为成员变量赋值

  • 根据成员变量的顺序初始化成员变量的值
1
struct 结构体名 结构体变量名 = { 值, ... }

定义结构体时直接创建结构体变量

1
2
3
4
5
struct 结构体名
{
成员变量类型 成员变量名
...
}结构体变量名;

访问结构体变量的成员变量

获取成员变量的值

1
结构体变量名.成员变量名;

修改成员变量的值

1
结构体变量名.成员变量名;

结构体数组

创建一个结构体数组变量

  • 通过结构体的定义,创建一个结构体数组变量
1
2
3
4
5
6
struct 结构体名 结构体变量名[数组长度] =
{
{值, ...},
...
{值, ...}
};

获取结构体数组成员变量的值

1
结构体变量名[下标].成员变量名;

修改结构体数组成员变量的值

1
结构体变量名[下标].成员变量名 = 值;

结构体指针

创建一个结构体指针

1
2
struct 结构体名 结构体变量名;
struct 结构体名 * 指针名 = &结构体变量名;

获取结构体成员变量的值

1
指针名->结构体成员变量名;

修改结构体成员变量的值

1
指针名->结构体成员变量名 = 值;

结构体嵌套

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
struct child
{
string name;
};

struct parent
{
string name;
struct child son;
};

int main()
{
struct parent father;
father.name = "张三"
father.son.name = "张三丰";
}

结构体作为函数的参数

值传递

1
2
3
4
5
void 函数名(struct 结构体名 结构体变量名)
{
结构体变量名.成员变量名;
...
}

地址传递

1
2
3
4
5
void 函数名(struct 结构体名 * 指针名)
{
指针名->成员变量名;
...
}

传递常量地址

  • 当某些应当执行读操作的函数传递结构体的地址作为参数时,可以用const关键字进行修饰,使之不可被修改,防止误操作
1
2
3
4
5
void 函数名(const struct 结构体名 * 指针名)
{
指针名->成员变量名;
...
}

完成

参考文献

哔哩哔哩——黑马程序员