c++第九篇

简介: c++第九篇
#include<bits/stdc++.h>
using namespace std; 
struct student
{
  //成员列表
  string name;  //姓名
  int age;      //年龄
  int score;    //分数
}stu3; //结构体变量创建方式3 
//教师结构体定义
struct teacher
{
    //成员列表
  int id; //职工编号
  string name;  //教师姓名
  int age;   //教师年龄
  struct student stu; //子结构体 学生
};
//值传递函数
void printStudent1(student s){
  cout<<" 年龄 "<<s.age<<" 姓名 "<<s.name<<" 分数 "<<s.score<<endl;
} 
//地址传递函数
void printStudent2(student * p) {
  cout<<" 年龄 "<<p->age<<" 姓名 "<<p->name<<" 分数 "<<p->score<<endl;
}
//const使用场景
void printStudent(const student *stu) //加const防止函数体中的误操作
{
  //stu->age = 100; //操作失败,因为加了const修饰
  cout << "姓名:" << stu->name << " 年龄:" << stu->age << " 分数:" << stu->score << endl;
} 
int main()
{
  //结构体的定义和使用 
  //结构体变量创建方式1
    student stu1; //struct 关键字可以省略
  stu1.name = "张三";
  stu1.age = 18;
  stu1.score = 100;
  cout << "姓名:" << stu1.name << " 年龄:" << stu1.age  << " 分数:" << stu1.score << endl;
  //结构体变量创建方式2
    student stu2 = { "李四",19,60 };
  cout << "姓名:" << stu2.name << " 年龄:" << stu2.age  << " 分数:" << stu2.score << endl;
  stu3.name = "王五";
  stu3.age = 18;
  stu3.score = 80;
  cout << "姓名:" << stu3.name << " 年龄:" << stu3.age  << " 分数:" << stu3.score << endl;
  //结构体数组
  //1、定义一个结构体
  //2、创建结构体数组
    student arr[3]={
    {"张三",18,90},
    {"李四",19,60 },
    {"王五",20,70 }
    };
    cout<<"-----------------------------"<<endl;
  //打印结构体数组 
  for (int i = 0; i < 3; i++)
  {
    cout << "姓名:" << arr[i].name << " 年龄:" << arr[i].age << " 分数:" << arr[i].score << endl;
  }
  cout<<"-----------------------------"<<endl; 
    //结构体指针
  student * p = &stu1;
  p->score = 80; //指针通过 -> 操作符可以访问成员
  cout << "姓名:" << p->name << " 年龄:" << p->age << " 分数:" << p->score << endl;
  cout<<"-----------------------------"<<endl; 
  //结构体嵌套结构体
  struct teacher t1;
  t1.id = 10000;
  t1.name = "老王";
  t1.age = 40;
  t1.stu.name = "张三";
  t1.stu.age = 18;
  t1.stu.score = 100;
  cout << "教师 职工编号: " << t1.id << " 姓名: " << t1.name << " 年龄: " << t1.age << endl;
  cout << "辅导学员 姓名: " << t1.stu.name << " 年龄:" << t1.stu.age << " 考试分数: " << t1.stu.score << endl;
  cout<<"-----------------------------"<<endl; 
  //结构体作函数参数
  //1、创建结构体
  student s;
  s.age=18;
  s.name="杨先生";
  s.score=100;
  printStudent1(s);//值传递  
  printStudent2(&s);//地址传递 
  cout<<"-----------------------------"<<endl; 
  //结构体中const的使用场景
  student sb = { "张三",18,100 };
  printStudent(&sb);
  return 0;
}


相关文章
|
6月前
|
安全 架构师 Java
理论实战源码齐飞!架构师社区疯传的SpringSecurity进阶小册真香
安全管理是Java应用开发中无法避免的问题,随着Spring Boot和微服务的流行,Spring Security受到越来越多Java开发者的重视,究其原因,还是沾了微服务的光。作为Spring家族中的一员,其在和Spring家族中的其他产品如SpringBoot、Spring Cloud等进行整合时,是拥有众多同类型框架无可比拟的优势的。
86 0
|
存储 安全 Java
2023年Java核心技术第九篇(篇篇万字精讲)(下)
2023年Java核心技术第九篇(篇篇万字精讲)(下)
60 0
|
缓存 安全 Java
2023年Java核心技术第九篇(篇篇万字精讲)(上)
2023年Java核心技术第九篇(篇篇万字精讲)(上)
44 0
|
消息中间件 缓存 安全
讲理论,重实战!阿里独家SpringBoot王者晋级之路小册,太强了!
大家平时学习SpringBoot的方式也一般是看大量博客或者是找一些业界评价好点的书籍,虽然SpringBoot相关资料很多,但是大多不成体系,很少有真正有能从0到1,详解Spring Boot一切从代码案例出发的案头笔记。 今天给小伙伴分享的就是来自阿里的SpringBoot王者晋级之路小册,这份小册从SpringBoot的开发环境部署开始,把Spring Boot搭建Web项目、操作数据库、使用缓存、日志、整合安全框架、结合消息队列和搜索框架,以及在实际应用中的部署全部讲得清清楚楚。
|
开发框架 Java Spring
高光时刻!美团推出Spring源码进阶宝典:脑图+视频+文档
Spring是一个开源框架,相信很多做Java开发的技术人员对Spring并不陌生,Spring是现在企业中经常会用到的,是为了解决企业应用程序开发复杂性而创建的。Spring主要的优势就是可以分层架构,可以为你提供选择使用哪一个组件,同时也会为J2EE应用程序开发体提供集成的框架!
74 0
C#学习(第四篇)
在上篇文章中我们学习了C#变量、C#数据类型转换以及C#运算符,这次我将继续带着大家学习C#运算符优先级、C#常量、C# if else:条件判断语句和C# switch语句。
C#学习(第四篇)