欢迎来到天天文库
浏览记录
ID:55091921
大小:23.00 KB
页数:6页
时间:2020-04-27
《C语言中const关键字用法总结.doc》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、个人收集整理-ZQ语言中关键字用法总结一、是什么在语言中,关键字是一种修饰符.所谓“修饰符”,就是在编译器进行编译地过程中,给编译器一些“要求”或“提示”,但修饰符本身,并不产生任何实际代码.就修饰符而言,它用来告诉编译器,被修饰地这些东西,具有“只读”地特点.在编译地过程中,一旦我们地代码试图去改变这些东西,编译器就应该给出错误提示.b5E2R。所以,修饰符地作用主要是利用编译器帮助我们检查自己代码地正确性.我们使用在源码中标示出“不应该改变”地地方,然后利用编译器,帮助我们检查这些地方是否真地没有被改变过.如果我们不小心去修改了这些地方,编译器就会报
2、错,从而帮助我们纠正错误.使用和不使用,对于最终编译产生地代码并没有影响.p1Ean。虽然对于最终代码没有影响,但是尽可能使用,将帮助我们避免很多错误,提高程序正确率.二、可以修饰哪些对象在上面已经提到过了,是一种修饰符,那它可以作为哪些对象地修饰符呢?下面列举了一些中用到地地方.,变量,指针,引用,类,类地成员变量,类地成员函数,修饰函数地形参与返回值下面我们分别讨论上面几种情况下,地用法.三、与变量当一个变量被修饰后,具有以下几个特点:)该变量只能读取不能修改.(编译器进行检查))定义时必须初始化.)中喜欢用来定义常量,取代原来风格地预编译指令.;:
3、常量变量""需要初始化设定项;;:表达式必须是可以修改地左值上面代码中第一行和第三行都有错误,注释便是编译器给出地错误提示.另外注意,在使用变量作为数组地下标时,变量地值一定要是一个常量表达式(在编译阶段就能计算得到结果).6/6个人收集整理-ZQ;[];();()必须是一个返回常量地函数[];;;[];:只有运行时才知道值四、与引用我们知道,引用必须在定义地时候赋值,这样就会所引用地变量绑定在一起并作为它地一个别名,在程序中地其他地方,是不能让引用再与其他对象绑定.这个特性,让引用看起来就像是对象一样,一旦定义后将不能更改.所以并不存在地引用.DXDi
4、T。但是我们却可以引用一个地对象(变量),我们称之为对常量地引用,与普通地引用不同地时,对常量地引用不能被用作修改它所绑定地对象.RTCrp。;;;:是对常量地引用;:不能将一个非常量引用指向一个常量地对象我们知道,引用地类型必须与其所引用对象地类型一致,如下面地代码:;;:无法用类型地值初始化类型地引用(非常量限定)上述代码为何不行?此处引用了一个型地整数.对于地操作数应该是整数运算,但是却是一个双精度地浮点数而非整数.因此为了确保让绑定一个整数,编译器把上述代码变成了如下形式:5PCzV。;;;其中是一个临时变量,而绑定了一个临时量,所以当改变时,并
5、没有改变地值,所以这种引用是无效地.也许你注意到了,当我们把变量绑定在一个类型上时,编译器提示后有个括号:非常量限定.这说明如果是一个常量地引用,则有可能是通过地,显然下面地代码就没有任何问题:jLBHr。;;因为在这里,是一个常量引用,我们并不想通过改变地值,只要能读到对应地型地值就行.五、与指针 我们知道,指针与引用不同,指针本身是一个对象,所以存在常量指针,这种指针在定义并初始化后,便不能再指向其他变量.用来修饰这种常量指针地,我们称之为"顶层".xHAQX。6/6个人收集整理-ZQ与顶层指针对应地是底层指针,这种指针指向一个修改地对象,这一点上就
6、有点像是常量地引用.对于指向常量地指针或引用,都有以下规则:)可以将一个非对象地地址赋给一个指向对象地指针)可以将一个非对象地地址赋给一个指向非对象地指针)可以将一个对象地地址赋给一个指向对象地指针)不可以将一个对象地地址赋给一个指向对象地指针.;;*;*;*不能用于初始化**;*; 还有一种指向对象地指针,这种指针首先表明,本身是一个指针,一旦初始化后不能指向其他对象;其次,它本身所指向地对象也是一个常量,即不能通过指针修改对象地值.LDAYt。;*;这里再强调一点,只是给编译器看地,我们可以很轻松地骗过编译器,并看看编译器都做了什么:;*(*);*;
7、<<<<;<<*<<;我们在代码地第行,用一个类型转换强制地,把一个非指针指向了一个对象.但是后面我们通过这个指针来修改这个值,却没有生效,原因呢?那是因为编译器在编译阶段发现是一个常量,所以在编译目标代码时已经将地地方都用进行了替换.六、与类其实类定义地对象,与普通地变量是一样地,用修饰时,说明这个类是一个常量类对象,这个对象有下面个特点:)不能改变其成员变量(非成员))不能调用其非成员函数{:;;(){;}(){<<;}(){<<;}6/6个人收集整理-ZQ};;;:是一个类,不能修改成员变量;可以修改修饰地变量();:不能调用非成员函数,而且这个成
8、员函数还修改了成员变量地值():不能调用非成员函数();七、与类地成员,成员变量
此文档下载收益归作者所有