美文网首页
C++结构体

C++结构体

作者: JuliusL | 来源:发表于2020-05-08 22:13 被阅读0次

    概念

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

    定义和使用

    语法:struct 结构体名{ 结构体成员列表 };
    通过结构体创建变量的方式有三种

    • struct 结构体名 变量名
    • struct 结构体名 变量名{成员1值, 成员2值...}
    • 定义结构体时顺便创建变量

    创建结构体的时候struct可以省略。

    struct Student{
      string name;
    } s1; //可以在定义的时候顺便创建变量
    
    int main(){
      struct Student s1; 
      s1.name = "Jam";
      return 0;
    }
    

    结构体数组

    语法:struct 结构体名 数组名[元素个数]={ {},{},{}... };

    struct Student{
      string name;
      int age;
    }
    int main(){
      Student arr[3] = {
        {"Jam",18},
        {"Lucy",18},
        {"Lily",18},
      };
      
      //给结构体中的数组赋值
      arr[0].name = "王五";
      arr[0].age = 20;
      return 0;
    }
    

    结构体指针

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

    struct Student{
      string name;
      int age;
    }
    int main(){
      Student s = {"张三",19};
      //通过指针指向结构体变量
      Student * p = &s;
      //通过指针访问结构体变量中的数据
      cout <<  p->name << p->age << endl;
    

    结构体做函数参数

    1,结构体做函数参数时用值传递,不会改变实参的实际值。
    2,结构体做函数参数用指针传递,会改变实参的实际值。

    结构体中的const使用场景

    将函数的形参改为指针,不会复制新的副本出来,可以减少内存空间。
    可是这样做通常的业务是不能修改实际值的。
    为了避免误操作,在形参之前加上const关键字可以避免。

    void printStudent(const Student *s){
      //在这里如果修改了s->age会报错!
      s->age = 18;
    }
    

    相关文章

      网友评论

          本文标题:C++结构体

          本文链接:https://www.haomeiwen.com/subject/vygqnhtx.html