- 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第七章函数详解const和volatile使用static变量使用register变量使用枚举型变量使用typedef使用按位运算符?运算符逗号运算符多重赋值复合赋值sizeof运算符使用优先级小结本章主要内容1152157.1const和volatile限定符C++中有const和volatile限定符简称为cv(cv-qualifier)限定符,它们影响变量的访问或修改方法。声明一个变量的时候,这些限定符位于基本类型的前面。本讲将继续分析数据类型和运算符。除了到目的为止所使用的数据类型以外,C++还支持其他几种数据类型。其中一些由添加到己知类型中的修饰符组成。其他数据类型包括枚举和typedef类型。C++还提供几个额外的运算符,即按位、移位、?、”,”以及sizeof运算符。一、const限定符使用const限定符声明的变量在执行程序期间不能修改其数值,不过可以赋予声明为const的变量一个初始值。主要用于定义具有名称的常量,限制函数对指针所指变量和索引引用变量的修改。Chapter7Exm1Chapter7Exm2315二、volatile限定符的实参。也就是说,对形参的修改会影响用于调用子程序的实参。存储类说明符auto、extern、register、static和mutable用来告诉编译器应该怎样存储一个变量。存储说明符位于变量声明的最前面。mutable用于类对象,后面讲解。Volatile修饰符告诉编译器,一个变量的值可以由程序以隐式指定的方法修改。Chapter7Exm2_1Chapter7Exm2_27.2存储类说明符一、auto说明符auto说明符声明一个局部变量。但是,很少用到这个说明符,因为局部变量都是默认为auto的。这个关键字用于程序中的情况非常少见。这是从C语言延续下来的一个说明符。二、extern说明符415在由两个或更多文件组成的程序中,每个文件都必须了解程序所使用的全局变量的名称和类型。但是,不能在每个文件中声明全局变量的副本。原因是程序只能含有每个全局变量的一个副本。因此,如果想要在每个文件中声明程序中所需的全局变量,那么当链接程序试图链接文件时,就会产生一个错误。它会发现重复的全局变量,并且将不会链接程序。这个难题的解决方案是在一个文件中声明所有的全局变量,并在其他文件中使用extern声明。Chapter7Exm3_1extern链接说明extern的一种变异形式提供了链接说明,它是对编译器的一个指令,指示链接程序如何处理函数。函数默认作为C++函数链接,但是链接说明允许链接不同类型语言的函数。Chapter7Exm3三、static变星515static类型的变量是其自身函数或文件中的永久变量。它们与全局变量不同,因为在它们的函数或文件之外是未知的。当static修饰符应用于局部变量时,为这个变量分配永久存储空间,这一点与全局变量类似。它允许static变量在各个函数调用之间保持其数值(换句话说,即当函数返回时,它的数值不会丢失,不像一般的局部变量那样)。static局部变量与全局变量的主要不同在于,局部变量只在声明它的代码块中是已知的。1、static局部变量Chapter7Exm42、static全局变量当static说明符应用于全局变量时,它告知编译器创建一个全局变量,这个变量只为声明它的文件所知。这意味着,尽管这个变量是全局性的,但是其他文件中的其他函数并不知道这个变6154、register变量量,不能修改其内容。因而,它不会受到副作用的影响。可能最常用的存储类说明符就是register了。register修饰符告知编译器某变量以被尽快访问方式存储。通常,这意味着将该变量存储到CPU的一个寄存器中,或者存储到缓存中。因为,访问CPU的寄存器(或缓存)比访问计算机的主存储器要快得多。register只是请求编译器这么做,编译器不一定这么做。因为寄存器和缓存数量有限。另外,现在编译器已经很先进,在不使用register,它也会帮助优化。一般,对程序性能影响比较大的变量可用register强制修饰。Chapter7Exm5Chapter7Exm67157.3枚举在C++语言中,可以定义一个含有命名的整型常量的列表。这样的列表叫做枚举。然后,这些常量就可以在整数可用的任何地方使用。枚举的定义使用enum关键字,并具有如下通用的格式:。枚举中要了解的一个关键点是,每一个符号代表一个整数值。另外,除非初始化为别的值,否则第一个枚举符号的值是0,第二个符号的值是1,依此类推。尽管枚举的常量会自动转换成整数,但是整数不会自动转换成枚举的常量,即整数不能直接赋给枚举变量。Chapter7Exm78157.4typedef关键字C++允许用户使用typedef关键字定义新的数据类型名称。
文档评论(0)