`
yshlin
  • 浏览: 63797 次
  • 性别: 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

    而C++中的const修饰符可以替代#define,提供类型安全,并且使得常量的使用更加安全和方便。const定义的常量在编译时处理,而不会占用运行时的存储空间。 3. const修饰符的基本用法:const关键字可以用于基本数据...

    C++中const关键字详解

    - **修饰顺序**: `const`修饰符的顺序很重要。例如,`const int *p`和`int const *p`表示相同的含义,都是指向`const int`的指针;而`int *const p`则表示指向`int`的`const`指针。 - **指针和对象的区别**: `const`...

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

    在本文中,我们将深入探讨C++中的函数修饰符,分为函数名前和函数名后两大类别。 ### 函数名前的修饰符 1. **返回值类型**:这是定义函数时必不可少的部分,可以是内置类型如`void`、`(unsigned) int`、`bool`,也...

    c++中const用法详解

    ### C++中`const`关键字的详尽解析与应用实例 #### 一、`const`基本用法 **1.1 限定符声明变量只能被读** `const`关键字用于声明一个只读变量,这意味着一旦该变量被初始化后,其值就不能被更改。例如: ```cpp ...

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

    总之,C++中的`const`类型限定符不兼容问题通常出现在试图在`const`对象上调用非`const`成员函数,或者在`const`成员函数内部调用未声明为`const`的其他成员函数时。解决这个问题的方法是确保所有可能被`const`对象...

    详解C++中const_cast与reinterpret_cast运算符的用法

    C++中的类型转换运算符是非常重要的特性,允许程序员显式地转换对象的类型。其中,const_cast和reinterpret_cast运算符在进行类型转换时扮演了关键的角色。本文将详细介绍const_cast和reinterpret_cast的用法和适用...

    C++ const使用详解

    C++ 中的 const 关键字是非常重要的,它可以用来修饰变量、指针、函数参数、返回值、成员函数等,具有非常多的用途。下面将对 const 的使用做详细的解释。 一、const 基础 const 关键字可以用来修饰变量、指针等,...

    指针与const限定符的使用分析

    总的来说,`const`限定符与指针的组合使用是C++中控制程序行为和数据安全性的重要手段。正确使用它们可以避免意外的修改,提高代码的可靠性和可维护性。通过深入理解和熟练应用这些概念,开发者能够编写出更加优雅和...

    const,extern,static,volatile的使用

    `const` 关键字在 C 和 C++ 编程语言中非常常见,它用来声明一个常量或者指定某个变量的某个方面为不可变。使用 `const` 可以提高代码的健壮性和可读性。 - **提高代码安全性**:通过限制对某些数据的修改,可以...

    一个月挑战 C++ 语言 教程 书籍 .txt 格式

    文件 .txt 格式,方便编辑,打印 01.C_C++中利用数组名指针进行排序实例.txt ...03.入门教程C++中的const限定修饰符.txt ... 有空多去去 http://meooo.download.csdn.net/ 也许有你喜欢东西和书籍......

    简单总结C++中的修饰符类型

    本篇文章将详细讲解C++中的修饰符类型及其用法,这对于C++初学者来说是非常重要的基础知识。 首先,我们要讨论的是整型修饰符,包括`signed`、`unsigned`、`long`和`short`。这些修饰符可以用来改变整数类型的大小...

    C/C++ 中const关键字的用法小结

    在C/C++编程中,`const`关键字是一个非常重要的元素,它用来声明常量和限定变量的可修改性。理解并正确使用`const`能够提高代码的可读性、健壮性和效率。以下是对`const`关键字不同用法的详细说明: 1. **定义常量*...

    一个月挑战C++

    书中详细讲解了const限定修饰符的使用,以及如何在C++中使用内联函数、虚函数和运算符重载等特性来增强代码的功能和灵活性。 面向对象编程是C++的一个核心特性,本书专设章节进行入门级讲解。这包括类(class)的基本...

    C++中const的实现细节介绍(C,C#同理)

    - 在类的成员函数声明中,`const`修饰符后的成员函数被称为“常成员函数”,它们不能修改对象的非静态成员变量,除非这些变量也是`mutable`的。 - 使用`const_cast`可以解除`const`限定,但这样做通常意味着违反了...

    C++关键字和操作符替代名

    15. **const_cast**:用于去除const或volatile限定符。 16. **continue**:跳过当前循环迭代的剩余部分,继续下一次迭代。 17. **default**:用于初始化列表或switch语句中的默认分支。 18. **delete**:释放...

    C/C++中CONST用法总结(推荐)

    在C/C++编程中,`const`...总之,`const`在C/C++中扮演着关键角色,它提供了代码的类型安全性和常量的保护,同时也提供了灵活性,如`mutable`和`const_cast`。理解和熟练运用`const`是编写高质量C/C++代码的重要部分。

    Const,Const函数,Const变量,函数后面的Const.txt

    在C++编程语言中,`const`关键字是一种类型限定符,被广泛用于提升代码的安全性与可读性。本文将深入探讨`const`的不同用法及其背后的原理。 #### 1. `const`修饰参数 - **基本概念**:`const`修饰一个变量时,...

Global site tag (gtag.js) - Google Analytics