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

推荐订阅源

博客园 - Franky
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
有赞技术团队
有赞技术团队
aimingoo的专栏
aimingoo的专栏
WordPress大学
WordPress大学
人人都是产品经理
人人都是产品经理
酷 壳 – CoolShell
酷 壳 – CoolShell
L
LangChain Blog
Blog — PlanetScale
Blog — PlanetScale
阮一峰的网络日志
阮一峰的网络日志
Microsoft Azure Blog
Microsoft Azure Blog
云风的 BLOG
云风的 BLOG
Google DeepMind News
Google DeepMind News
T
The Blog of Author Tim Ferriss
G
Google Developers Blog
Hugging Face - Blog
Hugging Face - Blog
Y
Y Combinator Blog
D
DataBreaches.Net
Engineering at Meta
Engineering at Meta
MyScale Blog
MyScale Blog
大猫的无限游戏
大猫的无限游戏
S
SegmentFault 最新的问题
The GitHub Blog
The GitHub Blog
Recent Announcements
Recent Announcements

博客园 - 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都不允许修改了.