1.结构体声明
声明一个带名称的结构体之后,该名称可认为是用户自己定义的数据类型,和int,float等地位一样
也可以声明一个匿名结构,只能使用一次
#include<iostream>
#include<cstring>
#include<string>
using namespace std;
int main()
{
//有名称声明
struct product
{
string name;//产品名称
int version;//产品型号
double price;//产品价格
};
product product1;//声明一个类型为product的产品1
product product2;//声明一个类型为product的产品2
//匿名结构
struct
{
string name;//产品名称
int version;//产品型号
double price;//产品价格
}product3;//product3的数据类型是这个没有名称的结构,只能用一次罗
}
2.结构体初始化和赋值
①直接按照结构体写法赋初值
#include<iostream>
#include<cstring>
#include<string>
using namespace std;
int main()
{
struct product
{
string name;//产品名称
int version;//产品型号
double price;//产品价格
};//结尾要有分号
product product1;//声明一个类型为product的产品1
product1 =
{
"tea", //成员之间用','间隔,字符串要引号
2,
4.99
}; //结尾要有分号
}
②初值表初始化
注意:赋值用列表时候不能省略'='
#include<iostream>
#include<cstring>
#include<string>
using namespace std;
int main()
{
struct product
{
string name;//产品名称
int version;//产品型号
double price;//产品价格
};
product product1;//声明一个类型为product的产品1
product product2;//声明一个类型为product的产品2
product1 = {"tea",3,3.4}; //赋值不可以省略=
product product3 {"tea",2,4.99};//初始化可以省略=
}
3.结构体成员的使用和操作
读取对应的值
#include<iostream>
#include<cstring>
#include<string>
using namespace std;
int main()
{
struct product
{
string name;//产品名称
int version;//产品型号
double price;//产品价格
};
product product1 = {"tea",2,4.99};//声明一个类型为product的产品1
cout<<"product1.name = "<<product1.name<<endl;
cout<<"product1.version = "<<product1.version<<endl;
cout<<"product1.price = "<<product1.price<<endl;
}
/****************运行结果********************
product1.name = tea
product1.version = 2
product1.price = 4.99
*********************************************/
4.结构体数组
可以存储同一种结构的大量数据
#include<iostream>
#include<cstring>
#include<string>
using namespace std;
int main()
{
struct product
{
string name;//产品名称
int version;//产品型号
double price;//产品价格
};
product products[2] =
{
{"tea1",1,2.99},
{"tea2",2,4.99}
};
//可以在声明时候赋初值,但是好像不可以声明后,赋值比如:
//product products[2];
//products[2] =
//{
// {"tea1",1,2.99},
// {"tea2",2,4.99}
//};
cout<<"product[0].name = "<<products[0].name<<endl;
cout<<"product[0].version = "<<products[0].version<<endl;
cout<<"product[0].price = "<<products[0].price<<endl;
}
/********************运行结果***********************
product[0].name = tea1
product[0].version = 1
product[0].price = 2.99
*****************************************************/