zoukankan      html  css  js  c++  java
  • 结构体和联合体

      结构体

       结构是一些值的合集,这些值称为的它的成员。这些成员的类型可能不同,通过名字可以对其进行访问。

       结构体声明:

       struct tag { member-list } variable_list ;

       例:

    struct {
                    int a;
                    char b;
                    float c;
    } x;

       结构成员的访问:

        1.直接访问,通过点操作符(.)访问。

        2.间接访问,通过箭头操作符(->)访问,箭头操作符的左操作数必须是一个指向结构的指针。

       初始化:

        一个位于一对花括号内部、又逗号分隔的初始值列表可用于结构各个成员的初始化。根据结构成员顺序写写出,若初始列表的值不够,剩余的结构成员将使用缺省值   进行初始化。

       结构的存储分配:

        按成员列表的顺序一个接一个的给每个成员分配内存,当存储成员时需要满足正确的边界对齐要求时,成员之间才可能出现用于填充的额外内存空间。

      联合体

        联合的声明和结构类似   

        简单的声明:

    union {
    float f;
      int i; } fi;

        联合初始化时初始值必须为第1个成员的类型,而且它必须位于一对花括号里面。

    union {
    float f;
      int i; } fi = {3.14159};

       区别

        结构体(struct)中各成员都有自己的内存空间,是同时共存的,长度是所有成员的和(考虑需要满足正确的边界对齐要求的情况)。

        联合体(union)中所有的成员只有一个内存空间,不同的时刻存储不同类型的值,长度是它最长成员的长度。

  • 相关阅读:
    【转】关于Oracle将小于1的数字to_char后丢掉0的解决办法
    【转】RadControls for Silverlight(学习2-RadDataPager)
    【转】RadControls for Silverlight(学习1-GridView)
    【转】 Easy RadControl 之 RadGridView(Silverlight)
    【转】silverlight telerik RadGridView 列头显示其他控件
    黑产江湖
    佳人篇
    联之道
    西二旗程序员家庭装修的架构之路
    西二旗程序员家庭装修的架构之路
  • 原文地址:https://www.cnblogs.com/fcchen/p/13311271.html
Copyright © 2011-2022 走看看