深圳网站建设推进,西安商城网站建设,编写网站的软件,微商城运营方案结构体结构体#xff08;struct#xff09;#xff0c;可以看做是一系列称为成员元素的组合体。可以看做是自定义的数据类型。定义结构体struct abc {int x;int y;
} e[array_length];const abc a;
abc b, B[array_length], tmp;
abc *c;上例中定义了一个名为 abc 的结构体struct可以看做是一系列称为成员元素的组合体。可以看做是自定义的数据类型。定义结构体struct abc {int x;int y;
} e[array_length];const abc a;
abc b, B[array_length], tmp;
abc *c;上例中定义了一个名为 abc 的结构体两个成员元素 x, y类型都为 int。在 } 后定义了数据类型为 abc 的常量 a变量 b变量 tmp数组 B指针 c。对于某种已经存在的类型都可以使用这里的方法进行定义常量、变量、指针、数组等。关于指针不必强求掌握。定义指针如果是定义内置类型的指针则与平常定义指针一样。如果是定义结构体指针在定义中使用 StructName* 进行定义。struct Edge {/*...*/Edge* nxt;
};访问/修改成员元素可以使用 变量名.成员元素名 进行访问。如 : 输出 var 的 v 成员cout var.v。也可以使用 指针名-成员元素名 或者 使用 (*指针名).成员元素名 进行访问。如 : 将结构体指针 q 指向的结构体的成员元素 v 赋值为 tmp(*q).v tmp 或者 q-v tmp。为什么需要结构体首先条条大路通罗马可以不使用结构体达到相同的效果。但是结构体能够显式地将成员元素在算法竞赛中通常是变量捆绑在一起如本例中的 abc 结构体便将 x,y 放在了一起定义这个结构体的实际意义是表示一件物品的重量与价值。这样的好处边是限制了成员元素的使用。想象一下如果不使用结构体而且有两个数组 x[], X[]很容易写混淆。但如果使用结构体能够减轻出现使用变量错误的几率。并且不同的结构体结构体类型如 abc 这个结构体或者不同的结构体变量结构体的实例如上方的 e 数组可以拥有相同名字的成员元素如 tmp.x,b.y同名的成员元素相互独立拥有独自的内存比如说修改 tmp.x 不会影响 b.x 的值。这样的好处是可以使用尽可能相同或者相近的变量去描述一个物品。比如说 abc 里有 x 这个成员变量我们还可以定义一个 Car 结构体同时也拥有 x 这个成员如果不使用结构体或许我们就需要定义 xOfabc[],xOfCar[] 等不同名称的数组来区分。