在 C++ 中,我们要初始化一个 结构体,有三种方法,即,顺序初始化、乱序初始化和 C++ 风格的初始化。
struct structName varName = {fileldValue1, fileldValue2, fileldValue3};
参数 | 描述 |
---|---|
struct | 结构体的关键字。 |
structName | 结构体名。 |
varName | 结构体变量名。 |
fileldValue1 | 结构体第一个字段对应的初始化值。 |
fileldValue2 | 结构体第二个字段对应的初始化值。 |
fileldValue3 | 结构体第三个字段对应的初始化值。 |
我们分别使用了 fileldValue1 来初始化了结构体 varName 中的第一个字段的值,使用了 fileldValue2 来初始化了结构体 varName 中的第二个字段的值,fileldValue3 来初始化了结构体 varName 中的第三个字段的值。
使用这种方式初始化,我们只能按照顺序一个个的初始化结构体的成员。
struct structName varName = {
.filed1 = value1,
.filed2 = value2,
.filed3 = value3
};
我们分别使用了 value1 来初始化了结构体 varName 中的 filed1 字段,使用了 value2 来初始化了结构体 varName 中的 filed2 字段,value3 来初始化了结构体 varName 中的 filed3 字段。
使用这种方式初始化,我们可以按照任意的顺序初始化结构体的成员。
使用这种方式初始化结构体成员使用的是 .filed1 = value1
的形式,且除了最后一个成员,其他的每一个成员的最后都要加一个逗号,即 ,
。
最后一个成员不可以加逗号。
struct structName varName = {
filed1 : value1,
filed2 : value2,
filed3 : value3
};
我们分别使用了 value1 来初始化了结构体 varName 中的 filed1 字段,使用了 value2 来初始化了结构体 varName 中的 filed2 字段,value3 来初始化了结构体 varName 中的 filed3 字段。
使用这种方式初始化,我们可以按照任意的顺序初始化结构体的成员。
使用这种方式初始化结构体成员使用的是 filed1 : value1
的形式,且除了最后一个成员,其他的每一个成员的最后都要加一个逗号,即 ,
。
最后一个成员不可以加逗号。
顺序初始化结构体中的成员
#include <iostream>
using namespace std;
struct Car{
char *brand;
int price;
int maxSpeed;
};
int main()
{
cout << "嗨客网(www.haicoder.net)\n" << endl;
struct Car car = {"Benz", 100000, 256};
char *brand = car.brand;
int price = car.price;
int maxSpeed = car.maxSpeed;
cout << "Init Brand = " << brand << " Price = " << price << " MaxSpeed = " << maxSpeed << endl;
return 0;
}
程序运行后,控制台输出如下图所示:
我们首先,定义了一个结构体 Car,该结构体有三个成员,即一个 字符串 类型的 brand、一个 int 类型 的 price 和一个 int 类型 的 maxSpeed。
接着,我们使用了顺序初始化的方式,初始化了结构体 car 的三个成员,即分别将结构体 car 的 brand 字段初始化为 “Benz”、结构体 car 的 price 字段初始化为 100000、结构体 car 的 maxSpeed 字段初始化为 256。
乱序初始化结构体中的成员
#include <iostream>
using namespace std;
struct Car{
char *brand;
int price;
int maxSpeed;
};
int main()
{
cout << "嗨客网(www.haicoder.net)\n" << endl;
struct Car car = {
.price = 100000,
.maxSpeed = 256,
.brand = "Benz"
};
char *brand = car.brand;
int price = car.price;
int maxSpeed = car.maxSpeed;
cout << "Init Brand = " << brand << " Price = " << price << " MaxSpeed = " << maxSpeed << endl;
return 0;
}
程序运行后,控制台输出如下图所示:
这次,我们在结构体里面,通过 “.FileldName” 的形式初始化了结构体的成员,使用这种方式初始化结构体的成员,不需要按照顺序,只需要在前面写上我们需要初始化的字段名即可。
最后,我们使用 cout 打印了结构体中的成员,我们发现,结构体中的字段已经被我们正确赋值了。
使用 C++ 风格来初始化结构体成员
#include <stdio.h>
struct Car{
char *brand;
int price;
int maxSpeed;
};
void main()
{
printf("嗨客网(www.haicoder.net)\n\n");
struct Car car = {
price : 100000,
maxSpeed : 256,
brand : "Benz"
};
char *brand = car.brand;
int price = car.price;
int maxSpeed = car.maxSpeed;
printf("Init Brand = %s, Price = %d, MaxSpeed = %d\n", brand, price, maxSpeed);
}
程序运行后,控制台输出如下图所示:
这次,我们使用了 C++ 风格来初始化了结构体的成员。
在 C++ 中,我们要初始化一个结构体,有三种方法,即,顺序初始化、乱序初始化和 C++ 风格的初始化。