025day(学习结构(struct))

来源:互联网 发布:三维全景图制作软件 编辑:程序博客网 时间:2024/06/05 21:15

172210704111-陈国佳总结《2017年11月4日》【连续025天】

标题:学习结构(struct);

内容:A.观看MOOC10.1;

          B.可用“struct”来定义一个“结构”,就是定义了一个新的数据类型;

struct 结构名

{

     类型名 成员变量名;

     类型名 成员变量名;

     .................

};

例: struct Student {

       unsigned ID;

      char szName[20];

      float fGPA;

};

Student 即成为自定义类型的名字,可以用来定义变量;

Student s1,s2;

两个同类型的结构变量,可以相互赋值;

一般地,一个结构变量所占的内存空间的大小,就是结构中所有变量大小之和。且各个成员变量在内存中一般是连续存放;

如上文的Student变量为28字节(ID4字节,szName20字节,fGPA4字节)

一个结构的成员变量可以是任何类型的,包括另一个结构类型:

struct Date{

        int year;

       int month;

       int day;

};

struct StudentEx{

    unsigned ID;

    char szName[20];

    float fGPA;

    Date birthday;

};

结构的成员变量可以是指向本结构类型的变量的指针

struct Employee {

      string name;

      int age;

      int salary;

      Employee *next;

};

访问结构变量的成员变量:

结构变量名.成员变量名

例:StudentEx stu;
    cin>>stu.fGPA;
    stu.ID=12345;
    strcpy(stu.szName,"Tom");
    cout<<stu.fGPA;
    stu.birthday.year =1984;
    unsigned int*p =&stu.ID;          //p指向stu中ID成员变量

结构变量可以在定义时进行初始化:

StudentEx stu ={1234,"Tom",3.78,{1984,12,28}};

结构数组:

StudentEx MyClass[50] ={{1234,"Tom",3.78,{1984,12,28}},{1235,"Jack",3.25,{1985,12,23}}};

MyClass[1].ID =1267;

MyClass[2].birthday.year=1986;

int n=MyClass[2].birthday.month;

cin >>MyClass[0].szName;

定义指向结构变量的指针:

             结构名*指针变量名;

通过指针,访问其指向的结构变量的成员变量;

指针->成员变量名  或:  (*指针).成员变量名

 例:StudentEx Stu;
    StudentEx*pStu;
    pStu =&Stu;
    pStu->ID=12345;
    (*pStu).fGPA=3.48;
    cout<<Stu.ID<<endl;
    cout<<Stu.fGPA<<endl;


明日计划:学习全局变量,局部变量,静态变量;



原创粉丝点击