c++ primer 2

1. p88

结构简介:

先定义结构描述

struct inflatable

{
     char name[20];
     float volume;
     double price;
 }

再按描述创建结构变量

struct inflatable gooes;//  in  c

inflatable vincent;//int c++  可省略 struct

inflatable guest = 
{
   "Glorious Gloria",
    1.88,
    29.99  
};// init   indicated  values

C++不提倡使用外部变量,但提倡使用外部结构申明。

根据C++11新特性,与数组一样,支持将列表初始化用于结构,且等号(=)是可选的。

inflatable duck{"Daphne",0.12,9,98}

若{}内为空,则被设置为0; 最后,不允许缩窄转换。

也可以同时完成定义结构和创建结构变量的工作

struck perks
{
  int key_number;
  char car[12];  
}mr_smith,ms_jones;

甚至可以初始化以这种方式的变量

struck perks
{
 int key_number;
 char car[12];
}mr_glitz =
{
 7,
"Packard"
};

还可以 声明没有名陈的结构类型

struct
{
   int x;
   int y;   
} position;

 2.p94

共同体(union)是一种数据格式,它能够存储不同的数据类型,但只能同事存储其中的一种类型。写法与结构类似

union one4all
{
  int int_val;
  long long_cal;
  double double_val;
}
one4all pail;
pail.int_val = 15;
pail.double_val = 15.6;

用途之一:当数据项使用两种或更多种格式(但不会同时使用)时,可节省空间。例如假设管理一个小商铺目录,其中有一些商品的ID为整数,而另一些的ID为字符串,可以

struct widget
{
 char brand[20];
  int type;
  union id
{
   long id_num;
   char id_char[20];  
} id_val;
};

widget prize;

if(prize.type == 1)
    cin>>prize.id_val.id_num;
else
   cin>>prize.id_val.id_char;

当为匿名共同体是,  id_num,id_char  被视为prize的两个成员

 cin>>prize.id_num;

3.p95

枚举

enum spectrum
{
  red,
  orange,
  yellow,
  green,
  blue,  
};

也可设置枚举量的值,必须为整数,常态下从0开始。

4.98

指针为一变量,其储存的是值的地址,而不是值本身

int updates = 6;
int *p_updates;
p_updates = &updates;
posted @ 2012-11-23 16:56  不想当元帅的好兵。  阅读(178)  评论(0编辑  收藏  举报