首页 > 代码库 > C++ 结构简介

C++ 结构简介

C++结构体定义

struct inflatable

{

  char name[20];

  float volume;

  double price;

}

C++创建结构本:

inflatable guest=

{  

  "Glorious Gloria",

  1.88,

  29.99

};

在C中是要加上struct前缀的,而C++可以省略;

访问:
   如guest.volume等;

 

结构体声明的位置很重要:

1,放上main()里的最开始位置;内部声明,只能被所属函数使用

2,放在main()的前面,外部声明可以被其后的任何函数使用到;

 

变量也是如此;C++不提倡使用外部变量,但提倡使用外部结构声明

 

结构体可以直接赋值给另一个:

  inlfatable choice=guest;

结构体数组:

  inflatable gifts[2]=

  {

    {"Bambi",0.5,21.99},

    {"Godzilla",2000,565.99}

  };

结构中的位字段:  冒号后使用一个数字指定了使用的位数。

  struct torgle_register

  {

     unsigned int SN: 4;

     unsigned int : 4;

     bool goodIn:  1;

     bool goodTorgle: 1;

  };

使用:

    torgle_resister str={14,true,false};

 

union共用体:

  是一种数据格式,能存储不同的数据类型,但只能同时存储其中的一种类型;

  union one4all

  {

    int int_val;

    long long_val;

    double double_var;

  }

  由于共用体只能存储一个值,所以其长度为最大成员的长度;

  用途:当数据作用两种或更多格式(但不会同进使用)时,可节省空间;

如小商品目录,其中有的ID为整数,有的ID为字符串;

struct widget

{

  char brand[20];

  int type;

  union id

  {

    long id_num;

    char id_char[20];

  }/*id_val*/;//匿名共用体可以直接使用,

};

widget prize;

prize.id_num;

prize.id_char;

如是非匿名体则

prize.id_val.id_num;

prize.id_val.id_char;

共用体常用于(但并非只用于)节省内存,嵌入式系统编程,如控制烤箱,MP3播放器等;

操作系统数据结构或硬件数据结构;