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;
}


相关文章
|
8月前
|
NoSQL Java MongoDB
墙裂推荐!超全SpringBoot2.x的奇技淫巧,满足你一切开发需求
一个小伙伴最近参加某一线互联网公司的面试,被问到了一些Spring Boot源码的问题,看看大家能否答出来:
|
缓存 安全 Java
2023年Java核心技术第九篇(篇篇万字精讲)(上)
2023年Java核心技术第九篇(篇篇万字精讲)(上)
50 0
|
存储 安全 Java
2023年Java核心技术第九篇(篇篇万字精讲)(下)
2023年Java核心技术第九篇(篇篇万字精讲)(下)
68 0
|
3月前
|
Java 数据库连接 数据库
让星星⭐月亮告诉你,SSH框架01、Spring概述
Spring是一个轻量级的Java开发框架,旨在简化企业级应用开发。它通过IoC(控制反转)和DI(依赖注入)降低组件间的耦合度,支持AOP(面向切面编程),简化事务管理和数据库操作,并能与多种第三方框架无缝集成,提供灵活的Web层支持,是开发高性能应用的理想选择。
45 1
|
4月前
|
搜索推荐 定位技术
撒旦快速入门实战
撒旦快速入门实战
|
3月前
|
监控 安全 Linux
撒旦快速入门实战2
撒旦快速入门实战2
|
存储 算法 Java
2023年Java核心技术第十二篇(篇篇万字精讲)
2023年Java核心技术第十二篇(篇篇万字精讲)
94 1
|
8月前
|
XML Java 数据格式
🚀今天,我们来详细的聊一聊SpringBoot自动配置原理,学了这么久,你学废了吗?
🚀今天,我们来详细的聊一聊SpringBoot自动配置原理,学了这么久,你学废了吗?
124 0
|
并行计算 安全 Java
2023年Java核心技术第十一篇(篇篇万字精讲)
2023年Java核心技术第十一篇(篇篇万字精讲)
63 2

热门文章

最新文章