惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

H
Help Net Security
博客园 - Franky
GbyAI
GbyAI
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
爱范儿
爱范儿
IT之家
IT之家
酷 壳 – CoolShell
酷 壳 – CoolShell
aimingoo的专栏
aimingoo的专栏
博客园_首页
MongoDB | Blog
MongoDB | Blog
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
Recent Announcements
Recent Announcements
Scott Helme
Scott Helme
有赞技术团队
有赞技术团队
M
MIT News - Artificial intelligence
C
CERT Recently Published Vulnerability Notes
K
KPMG report finds enterprise disconnect between AI and its ROI | CIO
Jina AI
Jina AI
F
Fortinet All Blogs
N
Netflix TechBlog - Medium
L
LangChain Blog
L
LINUX DO - 最新话题
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
H
Hacker News: Front Page
MyScale Blog
MyScale Blog
P
Palo Alto Networks Blog
G
Google Developers Blog
Google DeepMind News
Google DeepMind News
AI
AI
T
Troy Hunt's Blog
Microsoft Azure Blog
Microsoft Azure Blog
阮一峰的网络日志
阮一峰的网络日志
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
Vercel News
Vercel News
Microsoft Security Blog
Microsoft Security Blog
罗磊的独立博客
S
Secure Thoughts
大猫的无限游戏
大猫的无限游戏
博客园 - 叶小钗
人人都是产品经理
人人都是产品经理
Blog — PlanetScale
Blog — PlanetScale
博客园 - 司徒正美
Apple Machine Learning Research
Apple Machine Learning Research
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
博客园 - 三生石上(FineUI控件)
S
Security @ Cisco Blogs
Cloudbric
Cloudbric
E
Exploit-DB.com RSS Feed
Attack and Defense Labs
Attack and Defense Labs

博客园 - Lupin

百度低调发布搜索开放平台 - Lupin - 博客园 让AtlasToolkit中的CacadingDropDown支持多选 - Lupin - 博客园 ActionPack解读 Temporary Post Used For Style Detection (03e3e7c9-84e1-41db-a5b1-12251cf335f0) 个人求职简历(.Net)--求广州暑期实习 Google Toolbar4 让Google Analytics认识Baidu 微软的工程师也太神奇了! 我也被“玩儿死了” - Lupin - 博客园 在.Net中使用资源文件 NHibernate的Codesmith模板的几个Bug dasBlog的模板引擎(二)----内部实现 dasBlog的模板引擎(一)-----概念解释 GooglePK,一个无聊又有趣的小工具 - Lupin - 博客园 购买域名和服务器的过程 再次测试Crossport 最简单的int数组 Python的数据类型 - Lupin - 博客园 关于“undefined reference to”错误
const的作用
Lupin · 2006-03-27 · via 博客园 - Lupin

      在初学C++的时候,一直对const的用法难以理解,因为它出现的地方实在太多了。让我都搞不清楚它在各个地方到底是什么意思。前段时间看《$g(Effecitve c++)》才理解了const的一些用法。在过去一段时间之后的现在,我将我还记得的部分在这里记录下来,看看我是不是真的已经理解了const的用法。      

第一,用在函数定义的函数头后面.限制函数对超出该函数作用域的变量进行修改.比如:

void add( int a, int b ) const
{
     
this->length++;   //非法,不允许对length进行修改.
     int len = this->length;   //合法
}

第二,修改函数返回值,如:

int add( int a, int b )
{
    
return a + b;
}

//这样一个函数定义,代码里出现如下的语句是合法的
//add( a, b ) = 5;
//将一个常量赋给一个函数的返回值,这样看起来很奇怪,所以应该这样声明:
const int add( int a, int b )
{
    
return a + b;
}

//这样的话就不会有add( a, b ) = 5这样的语句了.

第三,修饰变量声明.

const char* pStr;
//这个声明可以看成(const char)* pStr,即一个const char的指针.对pStr进行赋值操作是允许的.
char* const pStr;
//这里的const修饰pStr,即不允许对pStr进行赋值,但是(*pStr)= "512",这样的操作是允许的.
const char* const pStr;
//当进行这样的声明是,pStr和*pStr都不允许修改了.