Object *c;
```
-上例中定义了一个名为 `Object` 的结构体,两个成员元素 `value,weight` ,类型都为 `int` 。
+上例中定义了一个名为 `Object` 的结构体,两个成员元素 `value, weight` ,类型都为 `int` 。
在 `}` 后,定义了数据类型为 `Object` 的常量 `a` ,变量 `b` ,变量 `tmp` ,数组 `B` ,指针 `c` 。对于某种已经存在的类型,都可以使用这里的方法进行定义常量、变量、指针、数组等。
## 访问/修改成员元素
-可以使用 `变量名.成员元素名` 进行访问(其中双引号不写入程序,下同)。
+可以使用 `变量名.成员元素名` 进行访问。
如 : 输出 `var` 的 `v` 成员: `cout << var.v` 。
## 为什么需要结构体?
首先,条条大路通罗马,可以不使用结构体达到相同的效果。但是结构体能够显式地将成员元素(在算法竞赛中通常是变量)捆绑在一起,如本例中的 `Object` 结构体,便将 `value,weight` 放在了一起(定义这个结构体的实际意义是表示一件物品的重量与价值)。这样的好处边是限制了成员元素的使用。
-想象一下,如果不使用结构体而且有两个数组 `value[],Value[]` ,很容易写混淆。但如果使用结构体,能够减轻出现使用变量错误的几率。
+想象一下,如果不使用结构体而且有两个数组 `value[], Value[]` ,很容易写混淆。但如果使用结构体,能够减轻出现使用变量错误的几率。
并且不同的结构体(结构体类型,如 `Object` 这个结构体)或者不同的结构体变量(结构体的实例,如上方的 `e` 数组)可以拥有相同名字的成员元素(如 `tmp.value,b.value` ),同名的成员元素相互独立(拥有独自的内存,比如说修改 `tmp.value` 不会影响 `b.value` 的值)。
这样的好处是可以使用尽可能相同或者相近的变量去描述一个物品。比如说 `Object` 里有 `value` 这个成员变量;我们还可以定义一个 `Car` 结构体,同时也拥有 `value` 这个成员;如果不使用结构体,或许我们就需要定义 `valueOfObject[],valueOfCar[]` 等不同名称的数组来区分。