结构体基础知识

  • 定义struct变量后,在main函数的调用时//定义时struct不可以省略

  • struct sudent s1;//这个可以省略
    s1.name="name";
  • struct sudent s2={"学生","18"};
    cout<<s2.name

    结构体数组

    • 在main函数中

    • struct Student stuarray[3]=
      {
      {"张三",21,34},//stuarray[1]
      {"李四",71,54},//stuarray[2]
      {"王五",56,15},//stuarray[3]
      }//相当于一个arr[3][3]的一个数组。
    • 赋值时

    • stuarray[2].name="赵六";

      结构体指针

      • struct Student s={值,值};
        struct Student *p=&s;
        *p=值//可以修改或赋值
        //通过指针访问结构体变量中的数据
        p->name

        结构体的嵌套

        • - struct sudent 
          - {
              string name;
              int age;
              int score;
          }
          struct teacher
          {
          int id;
          string name;
          int age;
          struct student stu;//在老师的结构体中嵌套学生类的结构体
          }
        • 访问student中的变量时

        • struct teacher tea;
          tea.stu.name=" ";

          结构体的值传递和地址传递

          void print01 (struct student stu)//值传递
          {
          cout<<stu.name;
          }
          void print02 (struct student *stu)//如果加入const变为常量指针
          {
          stu->name;
          }
          • main函数中

          • print(stu);
            print(&stu)

            面向对象内存四区

            程序运行前

            • 代码区:存放函数体的二进制代码,由操作系统进行管理

            • 全局区:存放全局变量静态变量和常量

            程序运行后

            • 栈区:由编译器自动的分配,存放函数的参数值,局部变量。

            • 堆区:由程序员分配和释放。不释放由程序自个释放

            • 意义:实现不同的周期赋予不用的生命周期灵活的编程。

              代码区

              • 启动应用的exe程序中的代码区时共享的

                共享:代码区就一份代码

 

                                       代码区是只读的,防止被修改

                                全局区全局区包括全局变量静态变量

                               静态变量还包括变量区字符串常量其他常量静态变量数据由程序结束后由操作系统释放

                               在main函数上面的变量为全局变量main函数下可创建普通的局部变量

                               main函数下变量前加入static属于静态变量

                               main函数下静态变量全局变量字符串常量和全局常量地址很近

                               局部变量和局部常量地址很近

                               const修饰的变量分为局部变量和全局变量,其中修饰的局部变量不在全局区 

posted @ 2023-04-06 23:01  boyboy!  阅读(33)  评论(0)    收藏  举报