- 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第10章 变量和数据类型 作用域回顾 10.2 枚举数据类型 10.4 类的初始化 10.1 typedef语句 10.5 数据类型转换 10.6 存储类说明符 10.3 10.3.1 auto 这个关键字用来声明一个自动局部变量,与static相反。这是函数或方法内部变量的默认声明方式,并没有人使用它。下面是一个例子: auto int index; 该语句声明index为一个自动局部变量,意味着在进入该块时,自动为它分配存储空间,并在退出该块时自动解除分配。因为在块中是默认的,因此语句 int index; 和语句 auto int index; 是等效的。 静态变量是有默认的初始值0,而自动变量没有默认的初始值。除非显示地给自动变量赋值,否则它们的值是不确定的。 10.3.2 const 编译器允许你给对程序中值不变的变量设置const特性。这样,就告诉编译器,指定的变量在程序运行期间都有恒定的值。在初始化变量后,如果尝试给const变量指派一个值,或视图将其增1或减1,编译器就会给出警告消息。局一个const特性的例子,代码 const double pi = 3.141592654; 声明了一个const变量pi。这就告诉编译器,程序不会修改该变量。当然,因为随后不能更改const变量的值,因此必须在定义变量时就进行初始化。 10.3.3 volatile 这个类型和const正好相反。它明确告诉编译器,指定类型变量的值会改变。在语言中加入这个关键字是为了防止编译器优化掉看似多余的变量赋值,同时避免重复地检查值没有变化的变量。I/O端口就是一个很好的例子,这涉及到对指针的理解。 加上在程序中,将输出端口的地址存储在一个名为outPort的变量中。如果要向这个端口写两个字符,可能会写出下面的代码: *outPort = ‘O’; *outPort = ‘N’; 第一行表示在outPort指定的内存地址存储字符O,第二行表示在同一位置存储字符N。一个智能的编译器可能发现对同一地址进行了两次连续的赋值。因为outPort在这两者之间并没有被修改,所以编译器将第一个赋值语句从程序中删除。要防止这种情况发生,应该将outPort声明为一个volatile变量: volatile char *outPort; 第10章 变量和数据类型 作用域回顾 10.2 存储类说明符 10.3 类的初始化 10.1 typedef语句 10.5 数据类型转换 10.6 枚举数据类型 10.4 10.4 枚举数据类型 Objective-C语句使得你可以将一系列值指派给一个变量。枚举数据类型的定义以关键字enum开头,之后是枚举数据类型的名称,然后是标识符序列,它们定义了可以给该类型指派的所有允许值。例如: enum flag { false, true }; 定义了一个数据类型flag。从理论上说,在程序中这个数据类型只能指派true和false两种值,不能指派其他的值。遗憾的是,即使违背了这个规则,Objective-C编译器也不会发出警告消息。 要声明一个enum flag类型的变量,仍需要关键字enum,之后是枚举类型名称,最后是变量序列。所以语句 enum flag endOfData, matchFound; 定义了两个flag类型的变量endOfData和matchFound。能指派给这两个变量的值只有true和false。 10.4 枚举数据类型 如果希望一个枚举标识符对应一个特定的整数值,那么可以在定义数据类型时给该标识符指定整数值。在列表中依次出现的枚举标识符被指派了特定整数值开始的序列数。 在定义 enum direction { up, down, left = 10, right };中,定义了一个保护up,down,left和right的枚举数据类型direction。因为up在序列中位于首位,所以编译器给其赋值为0,down为1;由于left明确被赋值为10,所以它的值就是10;right的值有列表中前一个enum的值递增得到,因此值为11. 枚举标识符可以共享相同的值。如: enum boolean { no = 0, false = 0, yes = 1, true = 1 }; 下面定义了类型enum mouth: enum month { january = 1, february, march, april, may, june, july, august, september, october,
文档评论(0)