C++ 结构体

结构体简介

结构体是拥护自定义的数据类型,允许用户储存不同的数据类型

语法:struct 结构体名{结构体成员列表};

结构体创建变量的方式
1.struct结构体名 变量名
2.struct结构体名 变量名={成员1值,成员2值}
3.定义结构体时顺便创建变量

定义结构体

#include
using namespace std;
#include

struct Student
{
    //成员列表
   //姓名
    string name;
   //年龄
    int age;
   //分数
    int score;
};

int main(){
  //创建具体学生
  //方法一
  struct Student s1;
  //通过.来访问
  s1.name = "张三";
  s1.age = 18;
  s1.score =   100;

  cout<<"姓名:  "<

那么第三种穿件结构体的方法是

#include
using namespace std;
#include

struct Student
{
    //成员列表
   //姓名
    string name;
   //年龄
    int age;
   //分数
    int score;
}s3;

int main(){
  //创建具体学生
  //方法三
  s3.name = "王五";
  s3.age = 20;
  s3.score = 60;

  cout<<"姓名:  "<

在定义结构体的时候顺便建立属性

结构体数组

结构体的数组的作用是将自定义结构体放到数组里面做存储

#include
using namespace std;
#include

//定义结构体
struct Student
{
    //成员列表
   //姓名
    string name;
   //年龄
    int age;
   //分数
    int score;
};

int main(){
  //创建结构体数组
  struct Student stuArray[3] = 
  {
      {"张三" ,18 , 100},
      {"李四" ,28 , 99},
      {"王五" , 38 , 66}
  };
    //赋值
    stuArray[2].name = "赵六";
    stuArray[2].age = 80;
    stuArray[2].score = 60;
  
  //遍历结构体数组 
    for (int i = 0; i < 3;i++)
   {
       cout<<"姓名:  "<

结构体指针

通过指针访问结构体成员

#include
using namespace std;
#include

//定义结构体
struct Student
{
    //成员列表
   //姓名
    string name;
   //年龄
    int age;
   //分数
    int score;
};

int main(){
    struct Student s = {"张三" , 18, 100 };
    //通过指针只想结构体变量
    Student *p = &s;
   //通过指针访问结构体变量内的数据
    cout<<"姓名: "<name<<"年龄: "<age<<"分数: "<score<

结构体嵌套

即结构体成员是另一个结构体

#include
using namespace std;
#include

//定义结构体
struct student
{
    //成员列表
   //姓名
    string name;
   //年龄
    int age;
   //分数
    int score;
};

struct teacher
{
    //成员列表
   //姓名
    int id;
   //年龄
    string name;
   //分数
    int age;
   //辅导的学生
    struct student stu;
};

int main(){
   teacher t;
   t.id = 10000;
   t.name = "老王";
   t.age = 50;
   t.stu.name = "小王";
   t.stu.age = 20;
   t.stu.score = 60;
   
   cout<<"老师姓名: "<

结构体做函数参数

作用是结构体作为参数向函数传递

我们首先看下值传递

#include
using namespace std;
#include

struct student
{
    //成员列表
   //姓名
    string name;
   //年龄
    int age;
   //分数
    int score;
};

void printStudent1(struct student s)
 {
     cout<<"子函数1姓名:  "<

地址传递

#include
using namespace std;
#include

struct student
{
    //成员列表
   //姓名
    string name;
   //年龄
    int age;
   //分数
    int score;
};

void printStudent2(struct student *p)
 {
     cout<<"子函数2姓名:  "<name<<"年龄:  "<age<<"分数:  "<score<

我们可以通过void printStudent2(const student p)来防止误操作

你可能感兴趣的:(C++ 结构体)