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();
}
分享到:
相关推荐
本文给大家介绍了C++中的const限定修饰符。
C++:浅谈修饰符const 魔鬼作坊学游戏辅助制作 moguizuofang.com
C++ 中const总结 const 限定符把一个对象转换成一个常量,如 const int bufSize=512; 申 明 bufSize 的时候,如果不将它初始化,那么编译器会报错:const object must be initialized if not extern。因为 bufSize ...
const限定符 const是一种限定符,被const所限定的变量其值不可以被改变。 const的初始化 由于const一旦创建其值就不能够被改变,所以我们必须对其进行初始化 const int a;//错误,const变量必须进行初始化! const ...
const限定符的使用,以及const 与 #define 的区别
主要介绍了c++ primer中的const限定符,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
今天在写程序的时候,出现了一个错误 “对象包含与成员函数不兼容的类型限定符”,从... 您可能感兴趣的文章:C++中const用法小结C和C++ const的声明差异C++ 中const和复合类型C++中的const和constexpr详解C++编程中的co
const在C++中占有重要作用,属于小兵立大功的典型,本文档详细介绍了如何使用const
一 const基础;二 const的初始化;三 作为参数和返回值的const修饰符;四 类成员函数中const的使用;五 使用const的一些建议。
返回值类型是C++中定义函数的必备部分,这些修饰符包括void,(unsigned) int,bool等内置基本数据类型和自定义类型,也包括修饰返回值const关键字(如const int*),还包括C++11中新增的类型自动推导auto关键字。...
C++中const使用说明。。。C++中const使用说明。。。
文件有对const修饰普通变量、指针、函数等等的详细解释,是对c++中const用法的完整总结。
C++中const用法总结.doc C++中const用法总结.doc 1. const修饰普通变量和指针 2. const修饰函数参数 3. const 修饰函数返回值 4. const修饰类对象/对象指针/对象引用 5. const修饰成员变量 6. const修饰成员...
c++中const用法详解,引用大量实例进行分析!
C++中const关键字详解
或许还有不少人对于const修饰符理解的并不深刻,都只是停留在一个比较浅的层面上,仅仅是在读别人代码的时候看到了const修饰符的使用,自己的写代码的过中从未使用过,所以自然对于const修饰符比较陌生。那么到底...
C中const和C++中const区别,例子和说明
C++ learning ---const用法总结,将平时不同情况的const用法,进行了详细的总结。是学习C++的好帮手