C++结构体详解

编辑: admin 分类: c#语言 发布时间: 2021-12-12 来源:互联网
目录
  • 一、结构体的定义
  • 二、创建具体的变量(3种)
  • 三、结构体数组
  • 四、结构体指针
  • 五、结构体嵌套结构体
  • 六、结构体做函数参数
    • 1、值传递
    • 2、地址传递
  • 七、结构体中const使用场景
    • 总结

      一、结构体的定义

      struct Student
      {
          string name;
          int age;
          int score;
      };

      二、创建具体的变量(3种)

      struct Student s1;
      s1.name = "张三";
      s1.age = 18;
      s1.score = 90;
      struct Student s1 = {"李四" ,19 , 80 };
      struct Student
      {
          string name;
          int age;
          int score;
      }s3;
      s3.name = "王五";
      s3.age = 18;
      s3.score = 89;

      三、结构体数组

      struct Student stuArray[3] = 
      {
          {"张三" , 20 , 92},
          {"李四" , 18 , 89},
          {"王五" , 24 , 95}
      };
      stuArray[2].name = "赵六";// 把王五改为赵六
      //遍历结构体数组
      for(int i =0; i < 3;i++)
      {
          cout << "姓名:" << stuArray[i].name
               << "年龄:" << stuArray[i].age
               << "分数:" << stuArray[i].score <<endl;
      }

      四、结构体指针

      利用操作符-> 可以通过结构体指针访问结构体属性。

      struct Student s = {"张三", 18, 90};
      struct Student *p = &s;
      //通过指针访问结构体变量中的数据
      cout << "姓名:" << p->name << endl; 

      五、结构体嵌套结构体

      struct student
      {
          String name;
          int age;
          int score;
      }
      struct teacher
      {
          int id;
          String name;
          int age;
          struct student stu;
      }
      teacher t;
      t.stu.name;

      六、结构体做函数参数

      1、值传递

      void printStudent(struct Student s1)
      {
          cout << "姓名:" <<s1.name << "年龄:" << s1.age << "分数" << s1.score;
      }
      int main(){
          struct Student s1;
          s1.name = "张三";
          s1.age = 18;
          s1.score = 95;
          printStudent(s1);
      }

      2、地址传递

      void printStudent(struct Student * s1)
      {
          cout << "姓名:" << p->name << "年龄:" << p->age << "分数" << p->score;
      }
      int main(){
          struct Student s1;
          s1.name = "张三";
          s1.age = 18;
          s1.score = 95;
          printStudent(&s1);
      }

      七、结构体中const使用场景

      void printStudent(const Student * s1)
      {
          cout << "姓名:" << p->name << "年龄:" << p->age << "分数" << p->score;
      }
      int main(){
          struct Student s1;
          s1.name = "张三";
          s1.age = 18;
          s1.score = 95;
          printStudent(&s1);
      }

      总结

      本篇文章就到这里了,希望能够给你带来帮助,也希望您能够多多关注海外IDC网的更多内容!

      【转自:http://www.1234xp.com/lg.html转载】