博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
const使用摘要
阅读量:6950 次
发布时间:2019-06-27

本文共 959 字,大约阅读时间需要 3 分钟。

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放在函的申报数量前,意味着返回功能值它是一个常数。

版权声明:本文博客原创文章。博客,未经同意,不得转载。

你可能感兴趣的文章
redis缓存架构-01-缓存架构方案
查看>>
goroutine
查看>>
[洛谷1231]教辅的组成
查看>>
在aspx页面中使用三元表达式
查看>>
iOS定位和位置信息获取
查看>>
Debian 7 安装Firefox
查看>>
ajax模式 同步和异步
查看>>
我喜欢的vs code快捷键for mac
查看>>
sql表的复制问题
查看>>
es6的新内容
查看>>
Java教程
查看>>
跟着大神学zookeeper分布式锁实现-----来自Ruthless
查看>>
vue2.0 兼容ie9及其以上
查看>>
Xml中SelectSingleNode方法,xpath查找某节点用法
查看>>
JAVA - JAVA编译运行过程
查看>>
计时器setInterval
查看>>
iOS开发个人开发账号的证书详细使用及介绍
查看>>
尺取法
查看>>
Your APP_BUILD_SCRIPT points to an unknown file: ./jni/Android.mk
查看>>
NOIP-珠心算
查看>>