栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

C++之结构体

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

C++之结构体

写在开头:结构体相对于数组的区别:

虽然数组可以储存多个元素,但是数组中所有元素的类型必须相同,在实际生活中,有可能需要存储不同类型的用户信息,因此,我们引入了结构体,用来存储多种数据类型。

举一个简单的例子:

struct inflatable
{
char name[20];
float volume;
double price;
};

结构体变量的访问:

  • 使用成员运算符(.)来访问各个成员。

如下代码:

#include
using namespace std;
struct inflatable
{
	char name[20];
	float volume;
	double price;

};
int main()
{
	inflatable guest =
	{
		"Cloorious Gloria",
		1.88,
		29.99
	};
	inflatable pal =
	{
		"Audacious Arthur",
		3.12,
		32.99
	};
	cout << "Expand your guest list with " << guest.name << " and " << pal.name << endl;
	cout << "You can have both for " << guest.price + pal.price<< endl;

	return 0;
}

对于局部结构体和全局结构体有:

 注意:

  • struct结构体可以使用string类作为成员。

另外,可以将结构体作为参数传递给函数,也可以让函数返回一个结构体。同时,还可以使用赋值运算符(=)将结构赋给另一个同类型的结构,这样结构体中每个成员都有将被赋值给另一个结构中相应成员的值,即使成员是数组。这种赋值被称为成员赋值。

如下代码:

#include
using namespace std;
struct inflatable
{
	char name[20];
	float volume;
	double price;

};
int main()
{
	inflatable bouquet =
	{
		"sunflowers",
		0.2,
	12.49
	};
	inflatable choice;
	cout << "bouquet: " << bouquet.name << " for $ " << bouquet.price << endl;
	choice = bouquet;
	cout << "choice: " << choice.name << " for $ " << choice.price << endl;
	return 0;
}

由此可看出:

由于choice结构的成员值与bouquet结构中的存储值相同,因此,因此可以同时完成定义结构和创建结构的工作。

如下代码:

struct inflatable
{
char name[20];
float volume;
double price;
}choice,bouquet;

另外,还可以声明没有名称的结构体变量,例如:

struct 
{
int x;
int y;
}position;

这样可以创建一个名为position的结构变量,可以使用position.x来访问成员x,但这种类型没有名称,因此以后无法创建这种类型变量。

2.结构数组。

例如:

inflatable gift[100];

gift将是一个inflata数组,其中的每个元素都是inflata对象,可以与成员运算符一起访问。

例如:

cin>>gift[0].volume;
cout< 

 初始化结构体数组的方法:

inflatable guests[2]=
{
{"Bambi",0.5,21.99},
{"Godzilla",2000,565.99}
};

如下代码:

#include
using namespace std;
struct inflatable
{
	char name[20];
	float volume;
	double price;

};
int main()
{
inflatable guests[2] =
{
{"Bambi",0.5,21.99},
{"Godzilla",2000,565.99}
};
cout << "The guests " << guests[0].name << " and " << guests[1].name << " have a combined volume of "
<< guests[0].volume + guests[1].volume << " cubic feet." << endl;
return 0;
}

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1027065.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号