就c++中的const限定修饰符做一个入门的教程
发布时间:2006-05-05 19:01:36 来源:网易学院 网友评论 0 条const修饰符可以把对象转变成常数对象,什么意思呢?
意思就就是说利用const进行修饰的变量的值在程序的任意位置将不能再被修改,就如同常数一样使用!
使用方法是:
const int a=1;//这里定义了一个int类型的const常数变量a; 但就于指针来说const仍然是起作用的,以下有两点要十分注意,因为下面的两个问题很容易混淆!
我们来看一个如下的例子:
//程序作者:管宁
//站点:www.cndev-lab.com
//所有稿件均有版权,如要转载,请务必著名出处和作者
#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有了一个基本的认识了,那么我们接下来看一个很容易混淆的用法!
请看如下的代码
//程序作者:管宁
//站点:www.cndev-lab.com
//所有稿件均有版权,如要转载,请务必著名出处和作者
#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的地址了,下面的这种写法常被用语涵数的形式参数,这样可以保证对象不会在涵数内被改变值!
//程序作者:管宁
//站点:www.cndev-lab.com
//所有稿件均有版权,如要转载,请务必著名出处和作者
#include <iostream>
using namespace std;
void main(void)
{
const int a=10;//这句和上面不同,请注意!
const int *const pi=&a;
cout <<*pi << "|" <<a <<endl;
cin.get();
} - 推荐阅讯
- C++的iostream标准库介绍
- 伪随机数生成及在VC++中的实现
- c++中函数重载的相关知识
- C/C++中利用空指针(NULL),提高程序运行效率
- C++箴言:绝不在构造或析构期调用虚函数
- C++的未来之路:C++0x概览
- 对前面对于引用的c++入门教程的补充说明
- C++/CLI程序进程之间的通讯
- C++ Builder构建算二十四点小游戏
- C++/VC++编程的疑难问题及解答
- 阅读排行
- 1.Borland 发布C++ Builder 2006 RAD 环境
- 2.C/C++程序员应聘常见面试题深入剖析
- 3.Visual C++常用数据类型转换详解
- 4.C++中的 static 关键字
- 5.利用VC++实现局域网实时视频传输
- 6.浅谈C/C++内存泄漏及其检测工具
- 7.英国投票否决C++/CLI 微软强攻ISO标准受挫
- 8.VC++下用MSComm控件实现串口通讯
- 9.伪随机数生成及在VC++中的实现
- 10.VC++编程实现对波形数据的频谱分析
- 专题教程
- Windows Server-Windows Server文档-Windows Server新闻-Windows Ser PostgreSQL-PostgreSQL文档-PostgreSQL新闻-PostgreSQL专家
- WebLogic-WebLogic文档-WebLogic新闻-WebLogic专家 FreeBSD-FreeBSD文档-FreeBSD新闻-FreeBSD专家
- Linux-内核 GUI KDE Gnome DNS FTP 安全 安装-Linux专区 Windows-AD IIS ServerCore 虚拟化 安全 HPC-Windows专区
- 大话G游 专题:手机病毒揭密
- ARP攻击防范与解决方案 路由故障处理手册
