嗨翻C语言——结构、联合与位字段(5)

1、const char*表示将传递字符串字面值,主要保存不想修改的字符串。
2、struct是structured data type(结构化数据类型)缩写,可以将不同类型的数据写在一起。
3、结构的大小固定,结构的数据都有名字。
4、

struct fish snappy = {
    
    “Snappy”,“Piranha”,694}

struct fish是数据类型。
snappy是变量名。
5、把参数封装在结构中,代码会更稳定。
6、访问结构时不能以访问数组的方式进行访问,应该按使用"."运算符访问结构字段。
例如:

printf("Name=%s\n",snappy.name);

7、注意:定义结构时末尾要加”;”
8、复制结构,具体复制的是字符串指针,而非字符串本身。
9、进行结构操作:
(1)定义结构数据
(2)使用结构数据进行目录项目的代入(建议将结构进行重命名)
(3)对结构进行赋值,使用目录输出。
在这里插入图片描述

10、用typedef为结构命名,规则为在结构前加上typedef,在后面起别名。
在这里插入图片描述

11、别名就是类型名,也就是说结构有两个名字,一个是结构名(struct cell_phone),一共是类型名(phone).
12、结构是一种由一系列其他数据类型组成的数据类型。
13、更新结构时,可以像修改变量那样修改字段。
14、当要把结构传给函数,并更新它的值时,需要使用结构指针。
15、(*t).age指向年龄 *t.age指t.age这个存储器单元中的内容。
16、

t->age==*t).age

17、联合可以有效使用存储器空间。
在这里插入图片描述

18、如何使用联合:
(1)C89方式:

 quantity q = {
    
    4}

(2)指定初始化器:

quantity q = {
    
    .weight=1.5};

(3)”点“表示法:

quantity q;
q.volume = 3.7

19、联合常和结构一起用。可以在联合中保存各种类型的值,但是保存后,并不知道这些值是以哪种类型保存的。所以可以使用一种技巧——创建枚举。
20、枚举:(数据项之间用逗号隔开)

enum colors{
    
    RED,GREEN,PUCE};
enum colors favorite = PUCE;

21、 位字段可以指定一共字段有多少位,一般位字段是连续的,放在一起的。
在这里插入图片描述

22、为什么C语言不支持二进制字面值?
因为二进制字面值占了很大空间,而且十六进制写起来更快。

猜你喜欢

转载自blog.csdn.net/weixin_46504000/article/details/129245097
今日推荐