C语言学习笔记(五)

167. 联合是一种数据类型,它能够在同意内存里面存储不同的数据类型。声明一个联合类型的变量时,编译器会分配足够的空间,以便能够存储联合声明中占用字节最大的类型。联合的初始化方法有三种:把一个联合初始化为另一个同类型的联合;初始化联合的第一个元素;根据C99标准,使用指定初始化器。在联合中,一次只存储一个值。即使有充足的空间,也不能同时存储两个及两个以上的的值。

168. 可以利用枚举类型声明符号名称来表示整型常量,使用enum关键字,可以创建一个新“类型”并指定它可具有的值。枚举中的每一个符号常量,被称为枚举符。

169. 虽然枚举符是int类型,但是枚举变量可以是任意整数类型,前提是该整数类型可以存储枚举常量。需要注意的是,C枚举的一些特性并不适用于C++。比如,C允许变量使用++运算符,但是C++标准不允许。

170. 默认情况下,枚举列表中的常量被赋予0、1、2等。在声明时,也可以为枚举常量指定整数值。如果只对一个枚举常量赋值,那么后续的枚举常量会被依次递增赋值。

171. C语言使用名称空间标识程序中的各部分,即通过名称来识别。作用域是名称空间概念的一部分:两个不同作用域的同名变量不冲突。两个相同作用域的同名变量冲突。名称空间是分类别的。在特定作用域中的结构标记、联合标记和枚举标记都共享相同的名称空间,该名称空间与普通变量使用的空间不同。这意味着在相同作用域中变量和标记的名称可以相同,不会引起冲突,但不能在相同作用域中声明两个同名标签或同名变量。但是在C++中不允许这么做,因为它把标记名和变量名放在相同的名称空间中。

172. typedef创建的符号名只受限于类型,不能用于值。typedef由编译器解释,不是预处理器。

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 这是16年5月份编辑的一份比较杂乱适合自己观看的学习记录文档,今天18年5月份再次想写文章,发现简书还为我保存起的...
    Jenaral阅读 8,043评论 2 9
  • 注:这是第三遍读《C语言深度解剖》,想想好像自从大学开始就没读完过几本书,其中谭浩强的那本《C语言程序设计(第四版...
    HavenXie阅读 5,795评论 1 6
  • 版权声明:本文为 gfson 原创文章,转载请注明出处。注:作者水平有限,文中如有不恰当之处,请予以指正,万分感谢...
    gfson阅读 8,679评论 0 6
  • 常量与变量使用let来声明常量,使用var来声明变量。声明的同时赋值的话,编译器会自动推断类型。值永远不会被隐式转...
    莫_名阅读 3,315评论 0 1
  • 标签(空格分隔): 未分类 基础(相关概念) 1.元祖 元组(tuples)把多个值组合成一个复合值。元组内的值可...
    一生信仰阅读 3,821评论 0 0

友情链接更多精彩内容