`
yshlin
  • 浏览: 61105 次
  • 性别: Icon_minigender_1
  • 来自: 济南
社区版块
存档分类
最新评论

C++中的const限定修饰符(C++入门)

    博客分类:
  • c++
阅读更多

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限定修饰符。

    C++:浅谈修饰符const

    C++:浅谈修饰符const 魔鬼作坊学游戏辅助制作 moguizuofang.com

    C++ 中const总结

    C++ 中const总结 const 限定符把一个对象转换成一个常量,如 const int bufSize=512; 申 明 bufSize 的时候,如果不将它初始化,那么编译器会报错:const object must be initialized if not extern。因为 bufSize ...

    详解C/C++中const限定符总结

    const限定符 const是一种限定符,被const所限定的变量其值不可以被改变。 const的初始化 由于const一旦创建其值就不能够被改变,所以我们必须对其进行初始化 const int a;//错误,const变量必须进行初始化! const ...

    const 限定符的使用

    const限定符的使用,以及const 与 #define 的区别

    c++ primer中的const限定符

    主要介绍了c++ primer中的const限定符,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下

    C++ 中const 类型限定符不兼容问题

    今天在写程序的时候,出现了一个错误 “对象包含与成员函数不兼容的类型限定符”,从... 您可能感兴趣的文章:C++中const用法小结C和C++ const的声明差异C++ 中const和复合类型C++中的const和constexpr详解C++编程中的co

    C++中const用法全解

    const在C++中占有重要作用,属于小兵立大功的典型,本文档详细介绍了如何使用const

    c++中const关键字使用详解

    一 const基础;二 const的初始化;三 作为参数和返回值的const修饰符;四 类成员函数中const的使用;五 使用const的一些建议。

    C++中的函数修饰符深入讲解

    返回值类型是C++中定义函数的必备部分,这些修饰符包括void,(unsigned) int,bool等内置基本数据类型和自定义类型,也包括修饰返回值const关键字(如const int*),还包括C++11中新增的类型自动推导auto关键字。...

    C++中const使用说明

    C++中const使用说明。。。C++中const使用说明。。。

    C++中const用法总结

    文件有对const修饰普通变量、指针、函数等等的详细解释,是对c++中const用法的完整总结。

    C++中const用法总结.doc

    C++中const用法总结.doc C++中const用法总结.doc 1. const修饰普通变量和指针 2. const修饰函数参数 3. const 修饰函数返回值 4. const修饰类对象/对象指针/对象引用 5. const修饰成员变量 6. const修饰成员...

    c++中const用法详解

    c++中const用法详解,引用大量实例进行分析!

    C++中const关键字详解

    C++中const关键字详解

    C语言的那些小秘密之const修饰符

    或许还有不少人对于const修饰符理解的并不深刻,都只是停留在一个比较浅的层面上,仅仅是在读别人代码的时候看到了const修饰符的使用,自己的写代码的过中从未使用过,所以自然对于const修饰符比较陌生。那么到底...

    C中const和C++中const区别

    C中const和C++中const区别,例子和说明

    C++ const应用总结

    C++ learning ---const用法总结,将平时不同情况的const用法,进行了详细的总结。是学习C++的好帮手

Global site tag (gtag.js) - Google Analytics