zoukankan      html  css  js  c++  java
  • C++基础总结(3)--复杂数据类型

    C++的三种复杂数据类型为:结构体,联合体, 以及枚举。


    结构是由用户定义的类型,而结构类型定义了这种数据类型的属性。定义了类型之后便可以创建这种类型的数据变量。
    创建数据类型分为两步:        
          首先,定义结构描述----------它描述并且标记了能够存储在结构中的各种数据类型。    
          然后然后按照描述创建结构变量(结构数据对象)。

    例如:
    struct inflatable
    {
          char name[20];
          float volume;
          double price;
    };

    此新类的名称叫做inflatable,这样·就可以像int,char和double那样创建数据变量。其作用域和其他简单的数据类型是一样的。

    初始化方法:       

                infatable hats={"Jack",1.123,12.33};(C++11支持将列表初始化用于结构)。且等号是可选的。如果大括弧内没有任何东西,各个成员都将被初始化为零。

    结构可以作为函数参数,也可以用等号进行直接赋值,将一个结构变量赋值给另一个结构变量。


    可以同时完成结构的定义以及结构变量的创建工作。只需将变量名放在结束括号的后面即可。

    struct perks
    {
          int key_num;
          char name[20];
    }ms_smith,ms_jone;

    其中ms_smith和ms_jone便是结构变量,相当于hats,perks是结构的名称。

    还可以声明没有名称的结构类型。方法是省略名称。
    strcut
    {
        int x;
        int y;
    }position;

    这样将创建一个position的结构变量。可以运用成员运算符访问它的成员,但这种类型没有名称,因此以后无法创建这种类型的变量。


    联合体(union)是一种数据格式,它能够存储不同的数据类型,但只能同时存储一种数据类型。结构体可以同时存世int,long和double而联合体只能存储int或long或double
    union one4all
    {
         int int_val;
         long long_val;
         double double_val
    };

    创建和声明和结构体类似,但是不同之处在于联合体每次智能存储一个值。因此他必须有足够大的控件来存储最大的成员,所以联合体的长度是其最大成员的长度。
    匿名联合体没有名称,其成员将成为位于相同地址处的变量,显然每次只有一个是当前成员。
    union
    {
          long id_num;
          char id_char;
    };
    由于联合体是匿名的,因此 id_num和id_char被视为price的两个成员,它们的地址相同。

    枚举

    C++的enum工具提供了一种创建符号常量的方式。
    例如enum specttum{red,orange,yellow, green,blue,violert,indigo,ultraiolet};//分别赋值为0-7,后面总比前面大一








  • 相关阅读:
    java实现简单web服务器(分析+源代码)
    Java中常见的5种WEB服务器介绍
    Android ViewDragHelper完全解析 自定义ViewGroup神器
    设置SVN,Git忽略MAC的.DS_Store文件的方法
    Android中图片大小和屏幕密度的关系讲解
    Android组件化方案及组件消息总线modular-event实战
    机器学习在美团配送系统的实践:用技术还原真实世界
    智能支付稳定性测试实战
    数据库智能运维探索与实践
    【人物志】技术十年:美团第一位前端工程师潘魏增
  • 原文地址:https://www.cnblogs.com/gaot/p/7709702.html
Copyright © 2011-2022 走看看