const修饰指针.docx
- 文档编号:13564364
- 上传时间:2023-06-15
- 格式:DOCX
- 页数:4
- 大小:15.67KB
const修饰指针.docx
《const修饰指针.docx》由会员分享,可在线阅读,更多相关《const修饰指针.docx(4页珍藏版)》请在冰点文库上搜索。
const修饰指针
先看const常量的情况:
constinta=2;
intconstb=c;//c是已经声明过的整型
两者都可以。
本地的const常量必须在第一次声明时就初始化,用变量或常量初始化都可以,只是初始化一次以后它的值就不能再改变了,此所谓const的含义。
一、const修饰指针
1、定义
常量指针:
是指向常量的指针,即指针指向的是常量,它不能指向变量,它指向的内容不能被修改。
不能通过指针来修改它指向的内容,但是指针自身不是常量,它自身的值可以改变,从而指向另一个常量。
指针常量:
是指指针本身是常量,它指向的地址是不可改变的,但地址里的内容可以通过指针改变,指针常量的定义时必须同时赋初值。
2、使用方法:
常量指针:
const在*之前
指针常量:
const在*之后
3、使用举例:
1)常量指针的使用:
constinta,b;
constint*p(或intconst*p);
p=&a;
p=&b;(正确)
*p=10;(错误的)
而且指向常量的指针有时候也会指向变量,如下:
int t,u;
const int *pa;
pa =&t; //可行,指向变量t
pa =&u; //也可行,指向变量u
2)指针常量的使用
inta,b;
int*constp=&a;
*p=20;(正确)
p=&b;(错误)
3)注意事项
还有一种情况,将const的地址赋给常规指针,这样的操作是不允许的,例如:
constintage=90;
int*p=&age;
我们可以这样来分析,如果上面的操作可以,那么我们可以改变指针p指向位置的值,即可以进行类似于下面的更新操作:
*p=new_value;
这样结果就与之前声明的constintage相矛盾,因为age为int型常量,*p改变了age的值。
二.const修饰类对象/对象指针/对象引用
const修饰类对象表示该对象为常量对象,其中的任何成员都不能被修改。
对于对象指针和对象引用也是一样。
const修饰的对象,该对象的任何非const成员函数都不能被调用,因为任何非const成员函数会有修改成员变量的企图。
例如:
classAAA
{
voidfunc1();
voidfunc2()const;
}
constAAAaObj;
aObj.func1();×
aObj.func2();正确
三.const修饰成员变量
const修饰类的成员函数,表示成员常量,不能被修改,同时它只能在初始化列表中赋值。
classA
{
…
ConstintnValue;//成员常量不能被修改
…
A(intx):
nValue(x){};//只能在初始化列表中赋值
}
四.const修饰成员函数
const修饰类的成员函数,则该成员函数不能修改类中任何非const成员函数。
一般写在函数的最后来修饰。
classA
{
…
voidfunction()const;//常成员函数,它不改变对象的成员变量.也不能调用类中任何非const成员函数。
}
对于const类对象/指针/引用,只能调用类的const成员函数,因此,const修饰成员函数的最重要作用就是限制对于const对象的使用。
注意事项:
1、不能将const类型的对象传递给non-const类型的引用。
constintcx=100;
int&rx=cx; //error
首先,告诉大家一个小规则,就是像这样连着的两个词,前面的一个通常是修饰部分,中心词是后面一个词,怎么说呢,就像这里的常量指针和指针常量。
常量指针,表述为“常量的指针”,它首先应该是一个指针。
常量指针,就是指向常量的指针,关键字const出现在*左边,表示指针所指向的地址的内容是不可修改的,但指针自身可变。
指针常量,表述为“指针的常量”,它首先应该是一个常量。
指针常量,指针自身是一个常量,关键字const出现在*右边,表示指针自身不可变,但其指向的地址的内容是可以被修改的。
还有其中区别方法:
沿着*号划一条线,
如果const位于*的左侧,则const就是用来修饰指针所指向的变量,即指针指向为常量;
如果const位于*的右侧,const就是修饰指针本身,即指针本身是常量。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- const 修饰 指针