论坛登陆 注册 教程 笑话 影视 投稿
首页 | 页界资讯 | 网络应用 | 软件应用 | 组网技术 | 网络原理 | 聊天通讯 | 网管知识 | 帮助
笑话 | 操作系统 | 注 册 表 | 编程开发 | 数 据 库 | 媒体动画 | 网页设计 | 图形图象 | 地图
论坛 | 网络安全 | 安全防范 | 服 务 器 | 硬件学堂 | 路由技术 | 搜索研究 | 站长经验 | 投稿
影院 | 教育频道 | 特色专题 | 精文荟萃 | 注 册 码 | 论坛社区 | 网站地图 | 广告服务 | 旧版
设为首页 加入收藏
当前位置:首页>>文章>>编程开发>>C/C++>>正文

C++中的const限定修饰符

www.xker.com 作者: 来源: pconline 加入日期:2006-3-17 11:01:55

【问题提问、论坛交流】const修饰符可以把对象转变成常数对象,什么意思呢?

  意思就是说利用const进行修饰的变量的值在程序的任意位置将不能再被修改,就如同常数一样使用!

  使用方法是:

const int a=1;//这里定义了一个int类型的const常数变量a;

  但就于指针来说const仍然是起作用的,以下有两点要十分注意,因为下面的两个问题很容易混淆!

  我们来看一个如下的例子:

#include <iostream> 
using namespace std; 
 
void main(void) 

const int a=10; 
int b=20; 
 
const int *pi; 
pi=&a; 
cout <<*pi << "|" << a <<endl; 
pi=&b; 
cout <<*pi << "|" <<b <<endl; 
cin.get(); 
}
  上面的代码中最重要的一句是 const int *pi
  这句从右向座读作:pi是一个指向int类型的,被定义成const的对象的指针;
  这样的一种声明方式的作用是可以修改pi这个指针所指向的内存地址却不能修改指向对象的值;

  如果你在代码后加上*pi=10;这样的赋值操作是不被允许编译的!

  好,看了上面的两个例子你对const有了一个基本的认识了,那么我们接下来看一个很容易混淆的用法!

  请看如下的代码:

#include <iostream> 
using namespace std; 
 
void main(void) 

int a=10; 
 
const int *const pi=&a; 
 
cout <<*pi << "|" <<a <<endl; 
cin.get(); 
}
  上面的代码中最重要的一句是 const int *const pi
  这句从右向座读作:pi是一个指向int类型对象的const指针;

  这样的一种声明方式的作用是你既不可以修改pi所指向对象的内存地址也不能利用指针的解引用方式修改对象的值,也就是用*pi=10这样的方式;

  所以你如果在最后加上*pi=20,想试图通过这样的方式修改对象a的值是不被允许编译的!

  结合上面的两点所说,把代码修改成如下形式后就可以必然在程序的任意的地方修改对象a的值或者是指针pi的地址了,下面的这种写法常被用语涵数的形式参数,这样可以保证对象不会在涵数内被改变值!

#include <iostream> 
using namespace std; 
 
void main(void) 

const int a=10;//这句和上面不同,请注意! 
 
const int *const pi=&a; 
 
cout <<*pi << "|" <<a <<endl; 
cin.get(); 
}

编辑:xker.com

上一篇:C++类的继承与多重继承的访问控制
下一篇:没有了
关闭窗口】【技术交流】【收藏此页
相关文章
·C++类的继承与多重继承的访问控制·用 VC++和Winsock 实现与 HTTP 服务·深入浅出VC++串口编程之DOS的串口编程
·C++/CLI中实现singleton模式·C++箴言:为类型信息使用特征类·Visual C++中回调函数使用的变身大法
·Visual C++中轻松实现透明滑动控件·探索C++的秘密之详解extern·VC++实现Windows系统回收站的文件存取
·在VC++应用程序中实现颜色选择组合框·C++之父Bjarne谈C++中的STL模板·用Visual C++语言在局域网实现IP多播
·Visual C++ 2005中的命名返回值优化·C++箴言:分离出参数无关的代码·VC++编程实现对火焰的计算机动态仿真
推荐文章 最新文章 热门文章
·SqlServer存储过程/函数加/解密
·CSS属性中Display与Visibility的不同
·网管实战 远程管理让服务发布遭遇意外
·骗你不商量的系统优化秘籍
·教您30分钟打造Linux的VPN服务器
·Windows IIS WEB服务器配置安全规范(
·网管手册 70例网络故障排除方法(上)
·ASP.NET中实现大结果集分页研讨
·java写的查找重复电话号码程序
·ASP.NET1.0升级ASP.NET2.0的问题总结
·在Linux操作系统中如何截获系统调用
·照片处理:美女肖像照片简单靓肤技巧
·PHP安全配置之实现安全的两个重点
·手工优化windows XP系统
·用 VC++和Winsock 实现与 HTTP 服务
·C++中的const限定修饰符
·自动为单元格添加数量单位
·木马各种隐藏技术披露
·Linux下病毒防范技巧
·排毒妙招:用安全网关轻松搞定蠕虫病
·病毒发展新趋势 从PC传染到PDA 
·PC到PDA病毒技术再次实现“跨越”
·天下没有免费的午餐!免费充Q币的骗局
·SqlServer存储过程/函数加/解密
·sql server日志文件总结及日志满的处
·在DreamWeaver中应用CSS样式表技巧两
·HTML文件中也玩include文件包含
·CSS属性中Display与Visibility的不同
·程序员建立商业意识之与客户沟通
·WinGate闯祸引发IP地址冲突
·个人简历表格
·免费代理IP(每日更新)
·QQ密码丢失后能做的事情:快速找回密码
·QQ收费头像免费使用的方法 
·Norton AntiVirus 2006 注册码(激活
·豪杰超级解霸V9.1正版注册码
·系统优化 专题
·WinRAR 3.51 注册码
·找回QQ密码的注意事项 
·史上最强QQ个人档案资料欣赏
·Ajax技术开发指南
·最经典的黑客入门教材
·求职简历封皮
·ACDSee v8.0注册码
·应届毕业生求职信
评论

设为首页 - 版权声明 - 广告服务 - 关于我们 - 联系我们 - 友情连接
Copyright © 2003-2006 xker.com All rights reserved.小新技术网 合作广告QQ:12231446
本页浏览次数: