C/C++ 您当前所在位置:首页 > C/C++ > C语言结构体解析

C语言结构体解析

陈成 陈成 2020-07-20 19:48:40 C/C++ 159人已围观

简介 我们知道定义一个数组就等于定义了多个相同类型的变量,它们的类型是一样的。有时有这样的需求,如果我想保存一些信息,但每个信息类型不一定相同,这时该怎么办?我们就可以自己定义一类型,而这个类型,就是结构体,也可以叫结构。结构体允许我们将不同的类型组合起来,形成一个新的类型。

我们知道定义一个数组就等于定义了多个相同类型的变量,它们的类型是一样的。有时有这样的需求,如果我想保存一些信息,但每个信息类型不一定相同,这时该怎么办?我们就可以自己定义一类型,而这个类型,就是结构体,也可以叫结构。结构体允许我们将不同的类型组合起来,形成一个新的类型。

结构体定义语法,假如我们用来保存一个人的信息。

struct Person
{
    //名字
    char name[20];
    //年龄
    int age;
    //性别
    char sex;
}

struct为关键字,后面跟结构体名字,也就是新类型的名字,名字规范和函数规范一样,只能是数字、字母、下划线且不能以数字开头。里面定义了各种类型变量,我这里定义年龄为int肯定不合理,这里只是举个例子而已。

结构体类型和基本类型是同级的,也就是能用int、char、short的地方就能用结构体,另外只是定义结构体是不会分配内存的,要用这个结构体声明变量后才会分配内存。

结构体的赋值

struct AA
{
    int aa;
    int bb;
}
//声明结构体类型
struct TestStruct
{
    char a;
    short b;
    int c;
    int arr[5];
    //定义一个结构体类型变量
    AA x;
};
int main(int argc, char* argv[])
{
    //声明变量
    TestStruct ts;
    //开始赋值
    ts.a = 10;
    ts.b = 20;
    ts.c = 30;
    //为数组赋值
    ts.arr[0] = 1;
    ts.arr[1] = 2;
    //为结构体赋值
    ts.x.aa = 3;
    ts.x.bb = 4;
    return 0;
}

如果要取值也很简单,int x = ts.a;就可以了,其余类推。

结构体在定义的时候可以使用任何类型,除了自身

文章评论

发送

站点信息

  • 上线时间:2020年05月30日
  • 网站程序:自建框架
  • 博客模板:今夕何夕
  • 文章统计43篇文章
  • 评论统计0条评论
  • 留言统计0条留言
  • 统计数据:百度统计