[ Visual Studio C++ ][ C# ] 结构体 讲解

一,前言

         结构体(结构),它是一种构造类型,可以简单理解为是一个'框架',由若干个成员组成,而这些成员可以是一个基本的数据类型,又或者是另一个结构体。用户创建一个结构体,等同于创建一个'小型数据库'。

          如:学户数量(int),姓名(char),期末成绩(浮动)等。在接下来的实现中,当想要使用其中的某个,可以轻松的从结构体中把它调用出来。

          结构体的好处是可以对一些信息进行整体管理操作,使程序变得更有结构感。有了结构体,开发者就可以更好的描述一个类别。 

          定义一个 '花店',把你拥有的 '鲜花' 放到里面。这就是你的一个结构体。(是不是有点像类的定义)

二,讲解

      1.结构体(结构)定义与引用。

             结构体(struct)是由一系列具有相同类型或不同类型的数据构成的数据集合。

            ①。原型一

//定义
struct 结构体名称{ 
   数据类型 member1; 
   数据类型 member2; 
}; 

//声明
struct 结构体名称 结构体变量名

                  实例

//定义
struct Student{
    int num;
    char name[10];
};

//声明
struct Student stu;

             ②。原型二

                 此原型中,有两种声明方法可以选择。

//定义
typedef struct 结构体名称{ 
   数据类型 member1; 
   数据类型 member2; 
} 结构体名称别名; 

//声明
struct 结构体名称 构体变量名

或

结构体名称别名 结构体变量名 

                 实例:

//定义
typedef struct Student{
    int num;
    char name[10];
}Stu;

//声明
struct Student stu;

或

Stu stu; 

            ③原型三:

//定义+声明
struct 结构体名称{ 
   数据类型 member1; 
   数据类型 member2; 
} 结构体变量名;

                   实例:

//定义+声明
struct Student{
    int num;
    char name[10];
}stu;      //此处stu 是变量名

            ④原型四:

                此种方法声明的结构体叫匿名结构体。

//定义+声明
struct { 
   数据类型 member1; 
   数据类型 member2; 
}结构体变量名;

                    实例:

//定义+生命
struct {
    int num;
    char name[10];
}stu,stu1;     //匿名结构体,同时定义了2个结构体变量

       2.完整工程实例

           此工程中包括复合结构体,简单理解为:一个结构体调用了另一个结构体。

#include<iostream>

using namespace std;
 struct Date{        //声明一个结构体类型Date 
  int year;  
  int month;      
  int day;           
 }; 

 struct Student{      //声明一个结构体类型Student 
  int num;         
  char name[20];    
  char sex;        
  int age;         
  Date birthday;  
  float score;     
  char addr[30];      
   };

int main(){
   Student one={001,"ANan,'m',19,1995,06,27,100,"Beijing"};
   cout<<one.num<<endl;
   cout<<one.name<<endl;
   cout<<one.sex<<endl;
   cout<<one.age<<endl;
   cout<<one.birthday.year<<"/"<<one.birthday.month<<"/"<<one.birthday.day<<endl;
   cout<<one.score<<endl;
   cout<<one.addr<<endl; 
   return 0;
}

三。总结

  1. 结构体与变量是不同的概念,不要混淆。只能对结构体变量中的成员赋值,而不能对结构体类型赋值。
  2. 对结构体变量中的成员(即“域”),可以单独使用,它的作用与地位相当于同类型的普通变量。
  3. 结构体的成员也可以是一个结构体变量。

猜你喜欢

转载自blog.csdn.net/Robot_Starscream/article/details/83240261