当前位置: 首页 > news >正文

免费制作个人简历的网站鱼鱼cms

免费制作个人简历的网站,鱼鱼cms,事业单位网站建设方案策划书,东营网站建设dysem1#xff0c;结构体基本概念 结构体属于用户自定义的数据类型#xff0c;允许用户存储不同的数据类型。像int#xff08;整型#xff09;#xff0c;浮点型#xff0c;bool型#xff0c;字符串型等都是属于系统内置的数据类型。而今天要学习的结构体则是属于我们自定义…1结构体基本概念 结构体属于用户自定义的数据类型允许用户存储不同的数据类型。像int整型浮点型bool型字符串型等都是属于系统内置的数据类型。而今天要学习的结构体则是属于我们自定义的一种数据类型 2结构体定义和使用 语法struct 结构体名 { 结构体成员列表 } 通过结构体创建变量的方式有三种struct关键字不可省略 struct 结构体名 变量名struct 结构体名 变量名 {成员1值成员2值...}定义结构体时顺便创建变量 #includebits/stdc.h using namespace std; //1创建学生数据类型 学生包括姓名年龄分数 //自定义数据类型一些类型集合组成的一个类型 //语法 struct 类型名称{ 成员列表 } struct Student{//成员列表//姓名string name; //年龄 int age;//成绩 int score; }s3;//顺便创建结构体变量s3. //2通过学生类型创建具体学生 int main(){//2.1 struct Student s1Student s1;s1.name张三;s1.age18; s1.score100;cout姓名 s1.name年龄 s1.age成绩 s1.scoreendl; //2.2 struct Student s2{...}Student s2{李四,19,80};cout姓名 s2.name年龄 s2.age成绩 s2.scoreendl; //2.3 在定义结构体时顺便创建结构体变量 s3.name王五;s3.age20;s3.score90;cout姓名 s3.name年龄 s3.age成绩 s3.scoreendl; } 结构体在具象化的时候可以通过三种方式创建具体的类型 struct Student s1 struct Student s2{...} 在定义结构体时顺便创建结构体变量  3结构体数组 作用将自定义的结构体放入到数组中方便维护也就是数组中的每一个元素都是我们自定义的同一种数据结构类型也就是结构体。 语法struct  结构体名 数组名[元素个数]{ {}{}{}...{} } 示例 #includebits/stdc.h using namespace std; //结构体数组 struct student{string name;int age;int score; }; int main(){struct student stuarry[3]{{july,18,100},{miss.li,20,90},{zhang,21,130}};stuarry[1].namesan;stuarry[1].age21;stuarry[1].score100;for(int i0;i3;i){cout姓名stuarry[i].nameendl;cout年龄stuarry[i].ageendl;cout成绩stuarry[i].scoreendl;} } 4结构体指针 作用利用指针访问结构体中的成员 利用操作符-可以通过结构体指针访问结构体属性 struct student{string name;int age;int score; }; int main(){//创建学生结构体变量student s{zhang,18,100}; //通过指针指向结构体变量student *ps;//通过指针访问结构体变量中的数据 p-age20;coutname p-nameage p-agescore p-scoreendl; } 通过上述例子我们可以总结出来 指针在定义时指针等号左右的数据结构要对应int对intfloat对floatstruct对struct。 指针通过-操作符可以访问成员 5结构体嵌套结构体      作用结构体中的成员可以是另一个结构体 例如每个老师辅导一个学员一个老师的结构体中记录一个学生的结构体 嵌套示意图 #includebits/stdc.h using namespace std; struct student{string name;int age;int score; };//定义学生结构体 struct teacher{int id;string name;int age;student stu;//代表这个老师所带的学生 }; int main(){teacher t;t.id1000;t.age50;t.nameMr.li;t.stu.age10;t.stu.namexiaowang;t.stu.score60;coutteachers name is t.nameendl;coutteachers age is t.ageendl;coutteachers id is t.idendl;coutstudents age is t.stu.ageendl;coutstudents score is t.stu.scoreendl;coutstudents name is t.stu.nameendl; } 6结构体做函数参数 作用将结构体作为参数向函数中传递 传递方式有两种 值传递形参修饰不会改变实参地址传递(如果函数形参发生改变实参也会跟着改变 示例 #includebits/stdc.h using namespace std; struct student{string name;int age;int score; };//定义学生结构体 void printstudent1(struct student s){s.age100;cout子函数1中姓名s.name年龄为 s.age成绩为 s.scoreendl; } void printstudent2(struct student *p){p-age100;cout子函数2中姓名p-name年龄为p-age成绩为p-scoreendl; } int main(){student s;s.nameBob;//实参 s.age20;s.score85;printstudent1(s);// 值传递形参修饰实参不会改变实参的值 printstudent2(s);//地址传递 coutmain函数中姓名s.name年龄为 s.age成绩为 s.scoreendl; } 主函数里的赋值为实参函数中的赋值为形参大家可以相应修改两种参数传递方式的参数值看看主函数里的实参会怎么变化得出的结论亦是上面两种结论。值传递修改形参不会改变实参的值地址传递则会修改实参的值具体原理参照C——函数-CSDN博客。 最根本的原理在于值传递参数时是独立开辟了一些内存空间而地址传递则是用指针直接指向实参地址 7结构体中const使用场景 作用用const来防止误操作 struct student{string name;int age;int score; };//定义学生结构体 void printstudent(const student *stu){stu-age30; 加入const之后一旦有修改的操作就会报错可以防止我们的误操作coutname is stu-age; } 上述函数中指针结构体加入const后结构体中的数据变不允许修改一旦修改便会报错。 8结构体案例 案例1 描述学校正在做毕设项目每名老师带领五个学生总共有三名老师需求如下 设计学生和老师的结构体其中在老师的结构体中有老师姓名和一个存放5名学生的数组作为成员 学生的成员有姓名考试分数创建数组存放3名老师通过函数给每个老师及所带的学生赋值 最终打印出老师数据以及老师所带的学生数据。 #includebits/stdc.h using namespace std; struct student{string name;int score; };//定义学生结构体 struct teacher{string name;student arrstudent[5]; }; //给老师和学生赋值的函数 void teacher(struct teacher array[],int len){string nameseedABCDE;for(int i0;ilen;i){array[i].nameteacher_;array[i].namenameseed[i];for(int j0;j5;j){array[i].arrstudent[j].namestudent_;array[i].arrstudent[j].namenameseed[j];int randomrand()%6040;array[i].arrstudent[j].scorerandom;}}} void print(struct teacher array[],int len){for(int i0;ilen;i){cout teachers name is array[i].nameendl;for(int j0;j5;j){coutstudents name is array[i].arrstudent[j].namescore is array[i].arrstudent[j].scoreendl;} } }int main(){struct teacher array[3]; int lensizeof(array)/sizeof(array[0]);teacher(array,len);print(array,len); } 案例2  设计一个英雄的结构体包括成员姓名年龄性别创建结构体数组数组中存放5名英雄。 通过冒泡排序的算法将数组中的英雄按照年龄进行升序排序最终打印排序后的结果。 {刘备,23,男},     {关羽,22,男},     {张飞,20,男},     {赵云,21,男},     {貂蝉,19,女} #includebits/stdc.h using namespace std; struct hero{string name;int age;string sex; };//定义学生结构体 void bubble(struct hero harray[],int len){for(int i0;ilen-1;i){for(int j0;jlen-i-1;j){if(harray[j].ageharray[j1].age){struct hero tempharray[j];//再次定义一个结构体接收。 harray[j]harray[j1];harray[j1]temp;}}}for(int i0;i5;i){cout排序后姓名为harray[i].name;cout\t排序后年龄为harray[i].age;cout\t排序后性别为harray[i].sex;coutendl;}} int main(){struct hero harray[5]{{刘备,23,男},{关羽,22,男},{张飞,20,男},{赵云,21,男},{貂蝉,19,女} }; int lensizeof(harray)/sizeof(harray[0]);bubble(harray,len);} 此案例的关键在于冒泡排序中要定义一个新的结构体代替作为temp临时代替量接收被替换的全部内容。
http://www.hkea.cn/news/14499408/

相关文章:

  • l凉州区城乡建设部网站首页广告设计图网站
  • 做网站开发要学多久婚庆公司网站建设
  • 内容展示型网站特点发布项目信息的平台
  • 做企业网站的第一步需要啥廊坊那家做网站排行榜
  • 怎么给婚恋网站做情感分析如何做好品牌宣传
  • 哈尔滨网站建站模板网站制作需要哪些东西
  • 电商门户网站网站克隆镜像做关键字seo
  • 企业网站资料大全wordpress 传递参数
  • 国外做软件界面的设计网站盘锦做网站选哪家
  • 福州网站制作工具seo对各类网站的作用
  • c 视频网站开发wordpress 条件筛选
  • 靖江建设局网站飘雪影视在线观看西瓜
  • 视频直播网站建设费用株洲建设局网站
  • 河西集团网站建设没有备案的网站怎么访问不了
  • 智能建站设计网站集群建设参数
  • 网站设计问题app开发公司哪
  • 程序网站开发漂亮的博客网站模板
  • 做网站流量怎么卖seo优化一般包括哪些内容()
  • 网站外链的优化方法永久域名注册网站
  • php能区别电脑网站和手机网站吗怎么嵌入到phpcmshtml5网站开发开题报告
  • 做图的模板下载网站有哪些内容什么为网站建设提供基础素材
  • 苏州企业网站设计开发小程序制作需要什么语言
  • pc开奖网站开发全网关键词云在哪里看
  • 鄂州网站制作哪家好ps做网站边框
  • 律师网站建设怎么样网站建设华企
  • 站长做旅游网站南宁百度推广代理公司
  • 手机网站菜单网页怎么做的上海发布最新情况
  • 营销型网站建设托管衡阳企业网站建设
  • 网站建设具体流程图建免费的网站吗
  • 做企业网站 asp的cms系统哪个好代工平台