const限定符

一const限定符概述:

(1)定义常量,定义后不能修改,定义时必须初始化。

(2)const对象默认为文件的局部变量:此变量只存在于定义的那个文件,不能被其他文件访问(默认情况下);要被其它文件访问,必须显式的指定为extern。

(3)非const对象默认为extern。


二 const与指针:

(1)指向const对象的指针:不能通过ptr改变所指对象的值。

*const type * ptr:限定了ptr所指对象的类型而非ptr本身的类型。

*允许把非const对象的地址赋给指向const对象的指针,但不能通过ptr改变所指对象的值。

*不可以把const对象的地址赋给非指向const对象的指针。

(2)const指针:指针本身不能修改。

*type * const ptr:ptr不能被修改,ptr所指对象的值是否可以修改取决于该对象的类型。

(3)指向const对象的const指针:指针不能修改,也不能通过指针修改所指对象的值。


三 const引用:指向const对象的引用。

*可以把非const对象绑定到const引用,但不能通过引用修改它。

*不能把const对象绑定到非const引用。


四 const成员函数:

*const成员不会对类对象的数据成员做任何修改(可以修改类的static数据成员)。

*const对象只能调用const成员函数;非const对象都可以使用。

*const成员函数中,this的类型是一个指向const类类型对象的const指针。非const成员函数中是一个指向类类型的const指针。

*const成员函数只能返回*this作为一个const引用。


五 C与C++中const的区别:

(1)C中const变量只是一个不能被修改的普通常量,是运行期常量不是编译期常量,不能作为数组大小来定义数组,在C中常量表达式必须是编译期常量;而C++无此限制,所以可以用来声明数组。

(2)c++中const变量默认使用内部链接,在全局作用域声明的const变量是定义该对象的文件的局部变量,此变量只存在于当前文件,不能被其它文件访问,通过指定const为extern可在整个程序访问;在C中则是外部链接。






评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值