zoukankan      html  css  js  c++  java
  • 结构体struct

    在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。

  • 相关阅读:
    c语言简易文法
    词法分析实验报告
    词法分析程序
    scrapy-splash的安装和使用
    scrapy关于将数据保存进mysql数据库及问题解决(增删查改)
    关于scrapy的一些练习
    安装python框架scrapy
    ssm中遇到的一些问题及解决办法
    安装PIL和pytesseract,用Pycharm自动化测试,验证码登陆
    selenium+pycham自动化登陆qq邮箱发送邮件
  • 原文地址:https://www.cnblogs.com/ply616/p/6389486.html
Copyright © 2011-2022 走看看