const使用

一 const 介绍:const是C语言的一个关键字,它限定了一个变量不允许被改变。

二 const使用方法:

1.定义const对象:const int bufSize=512; 这样就定义了一个常量bufSize,任何试图修改bufSize值的行为都将引发错误。

同时因为const 对象一旦创建其值就无法修改,所以需要对const对象初始化。

初始化还有一种方式是利用一个对象去初始化另一个对象。例如:int i=42;const int ci=i;

默认情况下,const对象仅在文件内有效,如果需要在其他文件中使用它,需要添加extern关键字后,才可使用。

2.const的引用:

把引用绑定到const对象上,就像绑定到其他对象上一样,称之为对常量的引用。与普通引用不同的是,对常量的引用不能被用作修改它所绑定的对象。引用的类型必须与其所引用对象的类型一致,例如 const int ci=1024;const int &r1=ci;是正确的。而int &r2=ci是错误的。但是有例外情况,对初始化常量引用时,允许用任意表达式作为初始值。例如

 int a=42; 

const int &b=a;

const int &c=42;

const int &d=r1*2;

3.const和指针

1)指向常量的指针(pointer to const) 或者底层const

形如:const double a=10; const double *b=&a;  不能改变所指对象的值。同时只能用指向常量的指针存放常量对象的地址,即double *c=&a是错误的。

注意:是常量地址只能由指向常量的指针存放,但是没有规定指向常量的指针所指的对象必须是一个常量,所谓指向常量的指针仅仅要求不能通过该指针改变对象的值。

2)常量指针(const pointer) 或者顶层const

形如:int a=0;int *const b=&a;  *放在const之前,用以说明指针本身为常量,即指针地址不能再改变,所以常量指针必须初始化,而且一经初始化不能再变。

指针本身是一个常量并不意味着不能通过指针修改所指对象的值,能否这样做取决于所指对象是否是常量类型,如果所指对象是常量类型,则无法通过指针修改对象的值,即const int a=0;int *const b=&a;*b=1是错误的。相反,如果所指对象不是常量类型则可以通过指针修改对象的值。即int a=0;int *const b=&a;*b=1是正确的。

4. const和函数

1)类中的const成员函数(常量成员函数)

任何不会修改数据成员的函数声明为const类型。调用格式:<类型说明符><函数名>(参数列表) const;

2)const修饰函数返回值

含义和const修饰普通变量以及指针的含义基本相同。

3) const修饰函数参数

参数为一般变量:如:void function(const int a); 传递过来的参数在函数内不可以改变

参数为指针情况1:如:void function(const int *a);参数所指的内容为常量不可变

参数为指针情况2: 如: void function(int const *a);参数指针本身不可变









评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值