菜鸟初学c和c++之基础知识(跟着菜鸟教程学)---(3)

一、

1.c中的结构体:

(1)简单介绍格式为

struct Books {

    char title[50];

    char author[50];

    char subject[100]; i

    nt book_id;

};

(2)结构体指针,当一个指针指向结构体时,如果想使用结构体的参数需要使用 '->'符号进行操作。

2.位域:例如下列例子(说明 data 为 bs 变量,共占两个字节。其中位域 a 占 8 位,位域 b 占 2 位,位域 c 占 6 位);

struct bs{

    int a:8; i

    nt b:2; i

    nt c:6;

}data;

对于位域的几点事项:

  圈1:一个卫浴存放在同一个字节中,如果放不下则会从下一个为止开始存放位域,(位域不可以跨两个字节,位域不允许大于一个字节的长度)

  圈2:位域可以是无名位域,但是不可以使用,仅用于填充和调整位置。

 

3.c中的共用体,格式为:

union Data { i

    nt i;

    float f;

    char str[20];

};

圈1:一种特殊的数据类型,允许在相同的内存位置放置不同的数据类型,共用体中的内存大小应当大于共用体中最大的内存大小。

圈2:访问共用体内的变量使用 『 . 』进行访问,例如:

   union Data data;

    data.i = 10;

圈3:如果向结构体中存储多个数据,那么数据有可能受到损坏,

菜鸟初学c和c++之基础知识(跟着菜鸟教程学)---(3)

所以在同一时间应到只使用共用体中的一个变量,(个人理解,这也是共用体实现的目的)