zoukankan      html  css  js  c++  java
  • 结构体 变迁

    struct

    结构体是由基本数据类型构成、并用一个标识符来命名的各种变量的组合

    格式

    struct  结构名 {
         类型 变量名;
         类型 变量名;
         ......

    }结构变量;

    结构名是结构的标识符



    结构 typedef 

    给结构体起别名



    结构数组

    结构数组本质是一个数组

    结构数组是具有同样结构类型的变量集合

    结构体成员的訪问是以数组元素为结构变量

         结构数组元素.成员名



    结构指针

    结构指针是指向结构的一个指针,即结构中第一个成员的首地址

    使用结构指针,首先应对结构指针初始化




    嵌套结构

    嵌套结构是指在一个结构成员中能够包含其他一个结构




    位字段

    位字段是一种特殊的结构,按位訪问一个字节或字的多个位

    位字段比按位运算符更加方便

    定义形式

    struct 位结构名{
         数据类型 变量名:整型常数;
         数据类型 变量名:整型常数;
         数据类型 变量名:整型常数;
         .....
    }位结构变量;

    数据类型必须是int(unsigned 或signed)

    整型常数必须是非负整数,表示二进制位的个数

    变量名是可选项,能够不命名,这样规定为了排列须要

    位段的最大取值范围不要超出二进制位数定的范围,否则超出部分会丢弃.

    tips

    一个位段必须存储在同一存储单元(即字)之中,不能跨两个单元.若其单元空间不够,则剩余空间不用,从下一个单元起存放该位段.

    能够通过定义长度为0的位段的方式使下一位段从下一存储单元開始.

    位段的长度不能大于存储单元的长度.

    位段无地址,不能对位段进行取地址运算.

    位段能够以%d、%o、%x格式输出.

    位段若出如今表达式中,将被系统自己主动转换成整数.




    越位

    所申明的总位数超过一个unsigned int大小

    不同意一个字段跨越两个unsigned int之间的边界 

    使用未命名的字段宽度填充未命名的洞

    使用宽度为0的未命名字段迫使下一个字段与下一个整数对齐





  • 相关阅读:
    2017国家集训队作业[agc006f]Blackout
    2017国家集训队作业[agc004f]Namori
    2017国家集训队作业[agc016b]Color Hats
    2017国家集训队作业[arc082d]Sandglass
    2017国家集训队作业[arc076d/f][Exhausted?]
    2017国家集训队作业[agc006e]Rotate 3x3
    2017国家集训队作业[agc014d]Black and White Tree
    2017国家集训队作业[agc008f]Black Radius
    数学竞赛
    [BZOJ4555 TJOI2016 HEOI2016 求和]
  • 原文地址:https://www.cnblogs.com/yxwkf/p/4002704.html
Copyright © 2011-2022 走看看