C++_结构体

  • 结构体:
  • 结构体属于用户自定义的数据类型,允许用户存储不同的数据类型
  • 自定义数据类型,一些类型集合组成的一个类型
  • 定义语法:struct 结构体名 {结构体成员列表};

例:struct student

{

String name;

Int age;

};

  • 通过结构体创建变量的方式有三种:

1、Struct 结构体 变量名;

给变量名属性赋值,通过”.”访问结构体变量中的属性

例:Struct Student s1;

    s1.name=”张三”;

S1.age=18;

 

2、Struct 结构体 变量名={成员值1;成员值2};

例:Struct Student s1={“张三”,18};

 

3、在定义结构体时顺便创建结构体变量

例:struct student

{

String name;

Int age;

}s1;

Struct Student s1;

    s1.name=”张三”;

S1.age=18;

  • 注:结构体定义的时候必须写struct,结构体创建的时候可以不写struct。

 

  • 结构体数组:
  • 将自定义的结构体放入到数组中方便维护
  • 创建语法:struct 结构体名 数组名[元素个数]={ {},{},{} };

例:struct student arr[3]=

{

{“张三”,12};

{“张二”,12};

{“张一”,12};

};

  • 给结构体数组中的元素赋值:

例:arr[2].name=”张三”;

  • 遍历结构体数组:

例:for(int i=0;i<3,i++)

{

Cout<<” ”<

}

  • 结构体指针:通过指针访问结构体中的成员。
  • 利用操作符”->”可以通过结构体指针访问结构体属性。
  • 创建结构体变量后,通过指针指向结构体变量:

例:Struct student *p=&s1;

  • 创建结构体变量后,通过指针访问结构体变量中的数据:

例:P->name ;p->age;

 

  • 结构体嵌套结构体(嵌套的结构体需写在前面):
  • 作用:结构体中的成员可以是另一个结构体

例:struct teacher

{

String name;

Int age;

Struct student s1;

}

  • 结构体做函数参数:
  • 作用:将结构体作为参数想函数中传递
  • 将函数中的形参改为指针,可以减少内存空间,而且不会复制新的副本出来
  • 传递的方式:
  •        值传递:形参变,实参不变;

例:printfStudent(struct student s)

{

//形参

Cout<<” ”<< s.name <<” ”<< s.age ;

}

  •          地址传递:形参变,实参也变;

例:printfStudent(struct student *p)

 

{

//形参

Cout<<” ”<< p->name <<” ”<< p->age ;

}

  • 结构体中const使用场景:
  • 加上const后,一旦有修改的操作就会报错,可以防止我们误操作。

 

  • 因为将函数中的形参改为指针,可以减少内存空间,而且不会复制新的副本出来(即 将值传递改为地址传递),但是函数在进行地址传递时,一旦形参改变,实参也会 发生改变,所以,为了方式实参改变,我们在进行地址传递时,在形参前加const, 保障实参不变。

 

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