C++中const的作用

C++中const的作用

1、const用于定义常量。

C语言: #define 常量名 常量值

C++: const 类型 常量名=常量;

(1)常量一经定义就不能修改,例如:

const int i = 5; // 定义常量i

i =10; // 错误,修改常量

i++; // 错误,修改常量

(2)const常量必须在定义时初始化,例如:

const int n; //错误,常量n未被初始化

2、const用于限定指针或限定指向的内容。

(1)指向常量的指针:所指内容为常量,指针为变量(const放在内容类型前)

例如:

const char*p=“good”; //const在char之前,表示指针指向的字符为常量,

     //不允许通过该指针来修改指向的字符

*(p+2)=‘l’; //错误,所指对象为常量

p=“very”; //正确,指针为变量

再例如:

int i=5;

const int*p=&i;

*p=6; //错误,所指对象为常量

i=6; //正确,指针为变量

(2)指针常量:指针为常量,指向内容为变量( const放在指针前)

例如:

char* const p=“good”; //指针名前加const,表示指针本身是常量

p=“very”; //错误

*(p+2)=‘l’; //正确

(3)指向常量的常量指针:指针为常量,指向内容也为常量(const加到内容类型前,也放到指针前)

例如:

const char * const p=“good”; // const指针前(指针为常量),

// const加到内容类型前(内容为常量)

p=“very”; //错误,指针为常量

*(p+2)=‘l’; //错误,内容为常理

3、const在类定义中的使用。

class Complex

{

public:

Complex(intr=0,int i=0);

voiddisplay()const;

Complex  add(const1 Complex &c)const2;      //两复数相加

private:

intreal;

intimag;

};

前一个const修饰复数表示对象c为常量,即c的数据成员不允许修改

如:c.real=10;//错误

后一个const修改函数add表示在该函数中,禁止修改当前对象的数据成员。

如: real=10;//错误

发布了29 篇原创文章 · 获赞 1 · 访问量 674

猜你喜欢

转载自blog.csdn.net/weixin_44414413/article/details/103297552