c语言中const关键字用法总结

c语言中const关键字用法总结

ID:35294280

大小:44.00 KB

页数:6页

时间:2019-03-23

c语言中const关键字用法总结_第1页
c语言中const关键字用法总结_第2页
c语言中const关键字用法总结_第3页
c语言中const关键字用法总结_第4页
c语言中const关键字用法总结_第5页
资源描述:

《c语言中const关键字用法总结》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、C++语言中const关键字用法总结一、const是什么在C/C++语言中,const关键字是一种修饰符。所谓“修饰符”,就是在编译器进行编译的过程中,给编译器一些“要求”或“提示”,但修饰符本身,并不产生任何实际代码。就const修饰符而言,它用来告诉编译器,被修饰的这些东西,具有“只读”的特点。在编译的过程中,一旦我们的代码试图去改变这些东西,编译器就应该给出错误提示。所以,const修饰符的作用主要是利用编译器帮助我们检查自己代码的正确性。我们使用const在源码中标示出“不应该改变”的地方

2、,然后利用编译器,帮助我们检查这些地方是否真的没有被改变过。如果我们不小心去修改了这些地方,编译器就会报错,从而帮助我们纠正错误。使用const和不使用const,对于最终编译产生的代码并没有影响。虽然const对于最终代码没有影响,但是尽可能使用const,将帮助我们避免很多错误,提高程序正确率。二、const可以修饰哪些对象在上面已经提到过了,const是一种修饰符,那它可以作为哪些对象的修饰符呢?下面列举了一些C/C++中用到const的地方。1,const变量2,const指针3,cons

3、t引用4,const类5,类的const成员变量6,类的const成员函数7,const修饰函数的形参与返回值下面我们分别讨论上面几种情况下,const的用法。三、const与变量当一个变量被const修饰后,具有以下几个特点:1)该变量只能读取不能修改。(编译器进行检查)2)定义时必须初始化。3)C++中喜欢用const来定义常量,取代原来C风格的预编译指令define。1constintvar;//Error:常量变量"var"需要初始化设定项2constintvar1=42;3var1=43

4、;//Error:表达式必须是可以修改的左值上面代码中第一行和第三行都有错误,注释便是编译器给出的错误提示。另外注意,在使用const变量作为数组的下标时,变量的值一定要是一个常量表达式(在编译阶段就能计算得到结果)。1constintsz=42;2intiAr[sz];3constintsz1=size();//size()必须是一个返回常量的函数4intiAr1[sz1];56intvar=42;7constintsz2=var;8intiAr2[sz2];//error:sz2只有运行时才知

5、道值四、const与引用我们知道,引用必须在定义的时候赋值,这样就会所引用的变量绑定在一起并作为它的一个别名,在程序中的其他地方,是不能让引用再与其他对象绑定。这个特性,让引用看起来就像是const对象一样,一旦定义后将不能更改。所以并不存在const的引用。但是我们却可以引用一个const的对象(变量),我们称之为对常量的引用,与普通的引用不同的时,对常量的引用不能被用作修改它所绑定的对象。1constintci=1024;2constint&r1=ci;3r1=42;//Error:r1是对常

6、量的引用4int&r2=ci;//Error:不能将一个非常量引用指向一个常量的对象我们知道,引用的类型必须与其所引用对象的类型一致,如下面的代码:doubledval=3.14;int&ri=dval;//Error:无法用double类型的值初始化int&类型的引用(非常量限定)上述代码为何不行?此处ri引用了一个int型的整数。对于ri的操作数应该是整数运算,但是dval却是一个双精度的浮点数而非整数。因此为了确保让ri绑定一个整数,编译器把上述代码变成了如下形式:doubledval=3.

7、14;inttemp=dval;int&ri=temp;其中temp是一个临时变量,而ri绑定了一个临时量,所以当ri改变时,并没有改变davl的值,所以这种引用是无效的。也许你注意到了,当我们把double变量绑定在一个int&类型上时,编译器提示后有个括号:非常量限定。这说明如果是一个常量的引用,则有可能是通过的,显然下面的代码就没有任何问题:doubledval=3.14;constint&ri=dval;因为在这里,ri是一个常量引用,我们并不想通过ri改变dval的值,只要能读到dval

8、对应的int型的值就行。五、const与指针 我们知道,指针与引用不同,指针本身是一个对象,所以存在常量指针,这种指针在定义并初始化后,便不能再指向其他变量。用来修饰这种常量指针的const,我们称之为"顶层const"。与顶层指针对应的是底层指针,这种指针指向一个const修改的对象,这一点上就有点像是常量的引用。对于指向常量的指针或引用,都有以下规则:1)可以将一个非const对象的地址赋给一个指向const对象的指针2)可以将一个非const对象的地址赋给一个指向非const

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。