首页 > 代码库 > const用法小结

const用法小结

const的四种情况如下:

int b = 500;
		const int *a = &b; ①(底层const)
		int const *a = &b; ②(底层const)
		int *const a = &b; ③(顶层const)
		const int *const a = &b; ④(靠右的是顶层const,靠左的是底层const)

第一种情况:const位于星号的左侧那么const就是用来修饰指针所指向的变量,即指针指向为常量;这种情况下不允许对内容进行更改操作。(底层const)

int b = 500;
	const int *a = &b;
	//*a = 600;  错误,但是*a的值可以通过其他的途径修改,其一为:
	b = 600;//现在*a的值为600
	cout << *a << endl;
	其二为:
	int c = 600;
	a = &c;//现在*a的值为600
	cout << *a << endl;
	这种情况可以先不进行初始化

第二种情况和第一种情况一样。

第三种情况为指针本身为常量,这种情况下不能对指针本身进行更改操作,而指针所指向的内容不是常量,这种情况必须初始化。

//int *const a; 错误,必须初始化
	int b = 500, c = 600;
	int *const a = &b;
	*a = 600;
	//cout << a++ << endl;错误

第四种情况为指针本身和指向的内容均为常量。

//=============================================================================================================================

再看看const成员函数:

可在不改变对象的成员函数的函数原型中加上const;

class Point
{
	int xVal, yVal;
public:
	int GetY() const;
};
int Point::GetY() const
{
	return yVal;
}

如果const放在函数声明之前,意味着函数的返回值是常量。


const用法小结