网站建设最好网站后台慢

张小明 2026/1/7 13:31:53
网站建设最好,网站后台慢,游戏代理怎么找渠道,服务器上配置网站结构简介 假设要存储有关篮球运动员的信息#xff0c;则可能需要存储他#xff08;她#xff09;的姓名、工资、身高、体重、平均得分、 命中率、助攻次数等。希望有一种数据格式可以将所有这些信息存储在一个单元中“数组不能完成这项任 务。因为虽然数组可以存储多个元素。…结构简介假设要存储有关篮球运动员的信息则可能需要存储他她的姓名、工资、身高、体重、平均得分、命中率、助攻次数等。希望有一种数据格式可以将所有这些信息存储在一个单元中“数组不能完成这项任务。因为虽然数组可以存储多个元素。但所有元素的类型必须相同。也就是说一个数组可以存储20个int另一个数组可以存储10个float但同一个数组不能在一些元素中存储int在另一些元素中存储float。C中的结构的可以满足要求存储篮球运动员的信息结构是一种比数组更灵活的数据格式因为同一个结构可以存储多种类型的数据这使得能够将有关篮球运动员的信息放在一个结构中从而将数据的表示合并到一起。如果要跟踪整个球队则可以使用结构数组。结构也是COOP堡垒类的基石。学习有关结桷的知识将使我们离C的核心OOP更近。结构是用户定义的类型而结构声明定义了这种类型的数据属性·定义了类型后便可以创建这种类型的变量。因此创建结构包括两步。首先定义结构描述一一它描述并标记了能够存储在结构中的各种数据类型。然后按描述创建结构变量结构数据对象)。例如。假设Bloataire公司要创建一种类型来描述其生产线上充气产品的成员。具体地说这种类型应存储产品名称、容鼠单位为立方英尺和售价。下面的结构描述能够满足这些要求struct inflatable //structure declaration { char name[20]; float volume; double price; };关键字struct表明这些代码定义的是一个结构的布局。标识符inflatable是这种数据格式的名称因此新类型的名称为inflatable。这样便可以像创建char或int类型的变量那样创建inflatable类型的变量了。接下来的大括号中包含的是结构存储的数据类型的列表其中每个列表项都是一条声明语句。这个例子使用了一个适合用于存储字符串的char数组、一个float和一个double。列表中的每一项都被称为结构成员因此infatable结构有3个成员参见图4.6)。总之结构定义指出了新类型这里是inflatable)的特征。定义结构后便可以创建这种类型的变量了struct inflatable //structure declaration { char name[20]; float volume; double price; }; intflatable hat; intflatable woopie_custhion; inflatable mainframe;如果您熟悉C语言中的结构则可能己经注意到了C允许在声明结构变量时省略关键字structstruct inflatable goose; inflatable vincent;在C中结构标记的用法与基本类型名相同。这种变化强调的是结构声明定义了一种新类型。在C中省略Struct不会出错。由于hat的类型为inflatable,因此可以使用成员运算符(.来访问各个成员。例如,hat.volume指的是结构的volume成员、hat.price指的是price成员。同样vincent.price是vincent变量的price成员。总之通过成员名能够访问结构的成员就像通过索引能够访问数组的元素一样。由于price成员被声明为double类型因此hat.price和vincent.price相当于是double类型的变量可以像使用常规double变量那样来使用它们。总之hat是一个结构而hat.price是一个double变量。顺便说一句访问类成员函数如cin.getline())的方式是从访问结构成员变量如vincent.price的方式衍生而来的。在程序中使用结构// 结构简介.cpp : 此文件包含 main 函数。程序执行将在此处开始并结束。 // #include iostream struct inflatable //structure declaration { char name[20]; float volume; double price; }; int main() { using namespace std; inflatable guest { Glorious Gloria, 1.88, 29.99 }; inflatable pal { Audacious Arthur, 3.12, 32.99 }; cout Expand your guest list with guest.name; cout and pal.name !\n; cout You can have both for $; cout guest.pricepal.price \n; return 0; }运行结果Expand your guest list withGlorious GloriaandAudacious Arthur! You can have both for $62.98程序说明结构声明的位置很重要。对于structur.cpp而言有两种选择。可以将声明放在main()函数中紧跟在开始括号的后面。另一种选择是将声明放到main()的前面这里采用的便是这种方式位于函数外面的声明被称为外部声明。对于这个程序来说,两种选择之间没有实际区别。但是对于那些包含两个或更多函数的程序来说差别很大。外部声明可以被其后面的任何函数使用而内部声明只能被该声明所属的函数使用。通常应使用外部声明这样所有函数都可以使用这种类型的结构参见图4.7)。变量也可以在函数内部和外部定义外部变量由所有的函数共享这将在第9章做更详细的介绍).C不提倡使用外部变量但提倡使用外部结构声明。另外在外部声明符号常量通常更合理。接下来请注意初始化方式inflatable guest { Glorious Gloria,//name value 1.88, //volume value 29.99 }和数组一样使用由逗号分隔值列表并将这些值用花括号括起。在该程序中每个值占一行但也可以将它们全部放在同一行中。只是应用逗号将它们分开inflatable duck{Daphne,0.12,9.98}可以将结构的每个成员都初始化为适当类型的数据。例如name成员是一个字符数组因此可以将其初始化为一个字符串。可将每个结构成员看作是相应类型的变量。因此pal.price是一个double变量而pal.name是一个char数组。当程序使用cout显示pal.name时将把该成员显示为字符串。另外由于pal.name是一个字符数组,因此可以用下标来访问其中的各个字符。例如pal.nam可[0]是字符A。不过pal[0]没有意义因为pal是一个结构而不是数组。C11结构初始化与数组一样C11也支持将列表初始化用于结构且等号是可选的inflatable duck{Daphne,0.12,9.98}; //can omit the in C 11其次如果大括号内未包含任何东西各个成员都栲被设置为零。例如下面的声明导致mayor.price和mayor.volume被置为零且mayor.name的每个字节都被设置为零inflatable mayor{}最后不允许缩窄转换。结构可以将string类作为成员吗可以将成员name指定为string对象而不是字符数组吗即可以像下面这样声明结构吗#includestring struct inflatable //structure definition { std::string name; float volume; double price; };答案是肯定的只要您使用的编译器支持对以string对象作为成员的鲒构进行初始化。一定要让结构定义能够访问名称空间。为此可以将编译指令using移到结构定义之前也可以像前面那样将name的类型声明为std:string?其他结构属性C使用户定义的类型与内置类型尽可能相似。例如可以将结构作为参数传递给函数也可以让函数返回一个结构。另外还可以使用赋值运算符将结构赋给另一个同类型的结构这样结构中每个成员都将被设置为另一个结构中相应成员的值即使成员是数组。这种赋值被称为成员赋值memberwiseassignment)将在第7章讨论函数时再介绍如何传递和返回结构。下面简要地介绍一下结构赋值程序清单4.12是一个这样的示例。#include iostream struct inflatable { char name[20]; float volume; double price; }; int main() { using namespace std; inflatable bouquet { sunflowers, 0.20, 12.49 }; inflatable choice; cout bouquet: bouquet.name for $; cout bouquet.price endl; choice bouquet; //assign one structure to another cout choice: choice.name for $; cout choice.price endl; return 0; }运行结果bouquet:sunflowersfor $12.49 choice:sunflowersfor $12.49从中可以看出成员赋值是有效的,因为choice结构的成员值与bouquet结构中存储的值相同。可以同时完成定义结构和创建结构变量的工作。为此只需将变量名放在结束括号的后面即可struct perks { int key_number; char car[12]; }mr_smith,ms_jones; //two perks variables甚至可以初始化以这种方式创建的变量struct perks { int key_number; char car[12]; }mr_glitz { 7 Packard }然而将结构定义和变量声明分开可以使程序更易于阅读和理解。还可以声明没有名称的结构类型方法是省略名称同时定义一种结构类型和一个这种类型的变量struct [ int x; int y; ]position;这样将创建一个名为position的结构变量。可以使用成员运算符来访问它的成员如positton.x但这种类型没有名称因此以后无法创建这种类型的变量。除了C程序可以使用结构标记作为类型名称外C结构具有到目前为止讨论的C结构的所有特性C11特性除外),但C结构的特性更多。例如与C结构不同C结构除了成员变量之外还可以有成员函数。但这些高级特性通常被用于类中而不是结构中因此将在讨论类的时候从第10章开始。结构数组inflatable-结构包含一个数组name。也可以创建元素为结构的数组方法和创建基本类型数组完全相同。一例如要创建一个包含一100个inflatable结构的数组可以这样做inflatable gifts[100];//array of 100 inflatable structures这样gifts将是一个inflatable数组其中的每个元素如gifts[0]或gifts[99]都是inflatable对象可以与成员运算符一起使用cingifts[0].volume; //use volume member of first struct coutgifts[99].priceendl;//display price member of last struct记住gifts本身是一个数组而不是结构因此像gifts.price这样的表述是无效的。要初始化结构数组可以结合使用初始化数组的规則用逗号分隔每个元素值并将这些值用花括号括起和初始化结构的规则用逗号分隔每个成员的值并将这些值用花括号括起。由于数组中的每个元素都是结构因此可以使用结构初始化的方式来提供它的值。因此最终结果为一个被括在花括号中、用逗号分隔的值列表其中每个值木身又是一个被括在花括号中、用逗号分隔的值列表可以按自己喜欢的方式来格式化它们。例如两个初始化位于同一行而每个结构成员的初始化各占一行。程序清单4.13是一个使用结构数组的简短示例。由于guests是一个inflatable数组因此guests[0]的类型为inflatable,可以使用它和句点运算符来访问相应inflatable结构的成员。// 结构数组.cpp : 此文件包含 main 函数。程序执行将在此处开始并结束。 // #include iostream struct inflatable { char name[20]; float volume; double price; }; int main() { using namespace std; inflatable guests[2] { {Bambi,0.5,21.99}, {Godzilla,2000,565.99} }; cout The quests guests[0].name and guests[1].name \nhave a combined volume of guests[0].volume guests[1].volume cubic feet.\n; return 0; }运行结果The questsBambiandGodzilla have a combined volume of2000.5cubic feet.结构中的位字段与C语言一样C也允许指定占用特定位数的结构成员这使得创建与某个硬件设备上的寄存器对应的数据结构非常方便。字段的类型应为整型或枚举相后将介绍),接下来是冒号冒号后面是一个数字。它指定了使用的位数可以使用没有名称的字段来提供间距。每个成员都被称为位字段(bit field)。下面是一个例子struct torgle_register { unsigned int SN:4; unsigned int :4; bool goodIn:1; bool goodTorgle:1; };可以像通常那样初始化这些字段还可以使用标准的结构表示法来访问位字段torgle_register tr{14true,false}; ... if(tr.goodIn) ...位字段通常用在低级编程中。一般来说可以使用整型和附录E介绍的按位运算符来代替这种方式。
版权声明:本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!

营销网站的优势是什么十大免费模板网站

端口安全是用来限制交换机端口接入设备的一种技术,核心目的是防止未经授权的设备随意接入局域网、占用网络资源,甚至窃取数据。这里要先明确一个概念:我们说的 “端口” 是交换机的物理端口(比如网线插的那个接口)&…

张小明 2026/1/6 11:06:21 网站建设

用来做调查问卷的网站企石镇仿做网站

MouseTester专业评测:4大核心维度深度解析鼠标性能表现 【免费下载链接】MouseTester 项目地址: https://gitcode.com/gh_mirrors/mo/MouseTester 还在为游戏中的瞄准偏差或设计工作中的光标抖动而烦恼?MouseTester通过精准数据采集和科学分析&a…

张小明 2026/1/6 11:04:18 网站建设

织梦 5.7网站地图赣州今天招工信息

据海关统计,2025年前11个月,我国货物贸易进出口总值41.21万亿元人民币,同比(下同)增长3.6%。其中,出口24.46万亿元,增长6.2%;进口16.75万亿元,增长0.2%。11月份&#xff…

张小明 2026/1/6 11:02:16 网站建设

商城类的网站怎么做优化wordpress缩略图特效

使用comsol仿真软件 利用双温方程模拟飞秒激光二维移动烧蚀材料 可看观察温度与应力分布 周期为10us,变形几何部分本人还在完善学习中 三维的也有 还有翻阅的论文文献一起打包最近折腾飞秒激光加工仿真搞得头大,特别是那个材料烧蚀过程中电子和晶格的热传…

张小明 2026/1/6 11:00:13 网站建设

分类目录网站怎么做中视频自媒体注册

如何快速提升暗黑破坏神II画质:新手玩家的完整优化指南 【免费下载链接】d2dx D2DX is a complete solution to make Diablo II run well on modern PCs, with high fps and better resolutions. 项目地址: https://gitcode.com/gh_mirrors/d2/d2dx 还在为暗…

张小明 2026/1/6 10:55:54 网站建设

凡科建站官网电脑版18种网络营销方式

COMSOL实现煤体钻孔周围损伤变形。 该案列考虑温度场和渗流扩散场对损伤影响,介绍钻孔周围损伤分布、损伤后瓦斯压力分布,可分析损伤后渗透率应力等 在煤炭开采等相关领域,理解煤体钻孔周围的损伤变形机制至关重要。借助 COMSOL 这一强大的多…

张小明 2026/1/7 11:15:07 网站建设