码迷,mamicode.com
首页 > 其他好文 > 详细

结构体struct

时间:2017-02-11 19:01:01      阅读:139      评论:0      收藏:0      [点我收藏+]

标签:数据   not   变量声明   变量类型   指针   log   使用   next   变量   

在C语言中,很多人会对结构体相关的东西搞混,这里记录一下。

结构体,顾名思义就是按照一定的规则组成的结构的东西。

一般通过如下来表明一个结构体:

struct { ... } name_1,name_2;

以上,表明name_1,name_2的变量类型是结构体,至于该结构是什么,需要看{}中的类型的组合了。

如果一个结构体我们经常使用,那么我们会给这个结构体打上标签,就相当于家人喊你的小名一样,就由了如下:

struct Tag { ... }name_1,name_2;

其中,只是多了一个Tag。所以,以后我们可以使用:

struct Tag name_3,name_4;

所以,有这样的说明:

struct 结构标签(可选)
{
    类型1 标识符1;
    ....
}变量定义(可选);

当然,如果觉得每次结构体变量声明的时候都需要带上struct很复杂,也可以用typedef来自定义一个数据类型。

typedef struct Tag
{
    ....
}TAG;

如何理解上面的呢?

实际上:

typedef unsigned int UINT;
//typedef 已有类型 自定义类型
typedef struct Tag{}TAG;

还有一个是指向自身的结构体指针。

假设Node如下:

struct node_tag
{
    int age;
    struct node_tag *next;
};

刚开始有可能觉得,这是一个先有鸡还是先有蛋的问题,可以这样理解。

  1. 结构体与类型无关,与分配的存储有关。

在结构体node_tag中,知道有两个空间:

  1. 一个int大小的空间
  2. 一个指针大小的空间

这样,实际上是先给规划了结构体的存储结构,然后再把该结构体换做note_tag。

 

结构体struct

标签:数据   not   变量声明   变量类型   指针   log   使用   next   变量   

原文地址:http://www.cnblogs.com/ply616/p/6389486.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!