结构体的各种使用方法详细讲解-c\c++

结构体

什么是结构体

  • 结构体就是自己自定义的一种"数据类型"

  • 使用多个基本数据类型或者其他结构组成的一种新的"数据类型"

  • C语言结构体(Struct)从本质上讲是一种自定义的数据类型,只不过这种数据类型比较复杂,是由 int、char、float 等基本类型组成的。你可以认为结构体是一种聚合类型。

    在实际开发中,我们可以将一组类型不同的、但是用来描述同一件事物的变量放到结构体中。

为什么要使用结构体

  • 表示一些复杂的信息比如学生的各种"成绩","科目","姓名",游戏的的各种"金币","积分",

    "宝石"

    单纯用基本数据类型使用不方便,代码的灵活性很低

     

结构体的定义

struct 结构名 {

成员类型 成员名;

成员类型 成员名;

};

实例

struct student {

int name[16]; //姓名

int age; //年龄

int tel; //电话

};

温馨提示

  • 各成员之间要以分号隔开;

  • 结构体结尾要以分号结束;

结构体里包含结构体

  • 实例

struct student {

int name[16];

int age;

int tel;

};

struct _class {

struct student xiaohua;

struct student heige;

struct student xiaohong;

};

结构体的初始化

struct student {

int name[16];

int age;

int tel;

};

  • 方式一

struct student xiaohua = {"xiaohua",18,10086};

  • 方式二

strcut student xiaohua ;

strcpy(xiaohua.name,"xiaohua");

xiaohua.age = 18;

xiaohua.tel = 10086;

初始化结构体中包含结构体

struct student {

int name [16];

int age;

int tel;;

};

struct _class {

struct student xiaohua;

struct student xiaohua;

struct student xiaohua;

};

 

struct _class n1= {

{"xiaohua",18,10086},

{"xiaohong",15,10086},

{"xiaohei",17,10086},

};

 

 

温馨提示

strcpy();在vs2019中需要添加_s,如:strcpy_s();

如果不添加会出现一下错误:

  •  

    原因:

    • 是因为vs认为函数strcpy();不安全,推荐使用vs自己的函数;

     

结构体的使用

  • c++方式:

 

  • 输出结果:

 

  • C方式:

 

  • 输出结果:

 

  • 结构体中包含结构体:

 

  • 输出结果为: