菜鸟初学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:如果向结构体中存储多个数据,那么数据有可能受到损坏,
所以在同一时间应到只使用共用体中的一个变量,(个人理解,这也是共用体实现的目的)