0
点赞
收藏
分享

微信扫一扫

C++总结笔记(三)—— 结构体

李雨喵 2022-01-20 阅读 106

一、概念

结构体是一种可以自定义数据类型的类型格式,一般用struct关键字进行定义。

//创建食物的结构体
struct Food
{
	//属性名
	string name;		//名字
	int Price;			//价格
};

结构体有三种定义变量的方法。

1.1 定义结构体后再声明变量,然后在对变量的属性赋值

int main()
{
	Food HuiMian;
	HuiMian.name = "烩面";
	HuiMian.Price = 10;
	cout << HuiMian.name << endl;
	cout << HuiMian.Price << endl;
}

1.2 定义结构体后再声明变量,同时对变量的属性赋值

int main()
{
	Food HuiMian = { "烩面" ,10};
	cout << HuiMian.name << endl;
	cout << HuiMian.Price << endl;
}

1.3 定义结构体时声明变量

//创建食物的结构体
struct Food
{
	//属性名
	string name;		//名字
	int Price;			//价格
}HuiMian;
int main()
{
	HuiMian.name= "烩面";
	HuiMian.Price = 10;
	cout << HuiMian.name << endl;
	cout << HuiMian.Price << endl;
}

二、程序应用

2.1 结构体数组

结构体和数组进行结合,定义形式为:struct 结构体名 数组名[元素个数]{}

int main()
{
	Food Arry[2]
	{
		{"烩面",10},
	    {"照烧鸡腿饭", 20}
	};
	//物价涨了
	Arry[0].Price = 12;
	Arry[1].Price = 30;
}

2.2 结构体指针

结构体指针在学习数据结构的时候会经常遇到,需要重点掌握,用指针名 + ->来进行访问结构体成员。

int main()
{
	Food Arry[2]
	{
		{"烩面",10},
	    {"照烧鸡腿饭", 30}
	};
	Arry[0].Price = 12;
	
	Food* p = &Arry[0];
	cout << p << endl;
	cout << p->name <<"的价格是:"<< p->Price << endl;
}

2.3 结构体嵌套

//定义食材的结构体
struct ShiCai
{
	string name;
	int Price;
};

//创建食物的结构体
struct Food
{
	//属性名
	string name;		//名字
	int Price;			//价格
	struct ShiCai shicai;
};
int main()
{
	Food Arry[2]
	{
		{"烩面",10,{"面条",1}},
		{"照烧鸡腿饭", 30,{"鸡腿",5}}
	};
	Arry[0].Price = 12;
	
	Food* p = &Arry[0];
	cout << p << endl;
	cout << p->name <<"的价格是:"<< p->Price <<"  包括食材:" <<p->shicai.name <<endl;
}
012FFC3C
烩面的价格是:12  包括食材:面条

2.4 结构体与函数

地址传递,可以更改结构体的值,反之,值传递不能更改:

void Print(Food *p)
{
    p->name = "红烧鱼";
	cout << p->name << "的价格是:" << p->Price << "  包括食材:" << p->shicai.name << endl;
}
int main()
{
	Food Arry[2]
	{
		{"烩面",10,{"面条",1}},
		{"照烧鸡腿饭", 30,{"鸡腿",5}}
	};
	Arry[0].Price = 12;

	Print(&Arry[0]);
	cout << Arry[0].name << endl;
}
红烧鱼的价格是:12  包括食材:面条
红烧鱼
举报

相关推荐

0 条评论