<p>const修饰符可以把对象转变成常数对象,什么意思呢? <br /> 意思就是说利用const进行修饰的变量的值在程序的任意位置将不能再被修改,就如同常数一样使用!<br /> 使用方法是:<font color="#0000ff"><br />const</font> <font color="blue">int</font> a=1;<font color="green">//这里定义了一个int类型的const常数变量a;</font>
</p>
<p> 但就于指针来说const仍然是起作用的,以下有两点要十分注意,因为下面的两个问题很容易混淆!我们来看一个如下的例子:</p>
<p>#include iostream</font>> <font color="blue"><br />using</font> <font color="blue">namespace</font> std; <font color="blue"><br />void</font> <font color="blue">main</font>(<font color="blue">void</font>) <br />{ <font color="blue"><br />const</font> <font color="blue">int</font> a=10; <font color="blue"><br />int</font> b=20; <font color="blue"><br />const</font> <font color="blue">int</font> *pi; <br />pi=&a; <font color="maroon"><br />cout</font> pi=&b; <font color="maroon"><br />cout</font> <br />cin</font>.get(); <br />}<br /> 上面的代码中最重要的一句是 const int *pi <br /> 这句从右向座读作:<font color="#ffffff">pi是一个指向int类型的,被定义成const的对象的指针</font>; <br /> 这样的一种声明方式的作用是<b><font color="#ff0000">可以</font>修改</b>pi这个指针<b>所指向的内存地址</b>却<strong><font color="#ff0000">不能</font>修改指向对象的值</strong>;<br /> 如果你在代码后加上*pi=10;这样的赋值操作是不被允许编译的!<br /> 好,看了上面的两个例子你对const有了一个基本的认识了,那么我们接下来看一个很容易混淆的用法! <br /> 请看如下的代码:
<p>#include iostream</font>> </p>
<p><font color="blue">using</font> <font color="blue">namespace</font> std; </p>
<p><font color="blue">void</font> <font color="blue">main</font>(<font color="blue">void</font>) <br />{ <br /><font color="blue">int</font> a=10; </p>
<p><font color="blue">const</font> <font color="blue">int</font> *<font color="blue">const</font> pi=&a; </p>
<p><font color="maroon">cout</font> <br /><font color="maroon">cin</font>.get(); <br />}</p>
<p>
<p> 上面的代码中最重要的一句是 const int *const pi <br /> 这句从右向座读作:<font color="#ffffff">pi是一个指向int类型对象的const指针</font>; </p>
<p> 这样的一种声明方式的作用是你<b>既<font color="#ff0000">不可以</font>修改pi所指向对象的内存地址</b>也<b><font color="#ff0000">不能</font>利用指针的解引用方式修改对象的值,也就是用*pi=10这样的方式</b>; </p>
<p> 所以你如果在最后加上*pi=20,想试图通过这样的方式修改对象a的值是不被允许编译的!</p>
<p> 结合上面的两点所说,把代码修改成如下形式后就可以必然在程序的任意的地方修改对象a的值或者是指针pi的地址了,<b>下面的这种写法常被用语涵数的形式参数,这样可以保证对象不会在涵数内被改变值!</b> </p>
<p>
<p>#include iostream</font>> <br /><font color="blue">using</font> <font color="blue">namespace</font> std; </p>
<p><font color="blue">void</font> <font color="blue">main</font>(<font color="blue">void</font>) <br />{ <br /><font color="blue">const</font> <font color="blue">int</font> a=10;<font color="green">//这句和上面不同,请注意! </font> </p>
<p><font color="blue">const</font> <font color="blue">int</font> *<font color="blue">const</font> pi=&a; </p>
<p><font color="maroon">cout</font> <br /><font color="maroon">cin</font>.get(); <br />}</p>
<p></p>
分享到:
相关推荐
在C++编程语言中,const是一个非常重要的修饰符,它用于声明一个变量为常量。这个修饰符的主要作用是确保变量的值在程序执行期间不会被改变,以增强程序的可读性和安全性。以下是关于const修饰符的详细知识点: 1. ...
- **修饰顺序**: `const`修饰符的顺序很重要。例如,`const int *p`和`int const *p`表示相同的含义,都是指向`const int`的指针;而`int *const p`则表示指向`int`的`const`指针。 - **指针和对象的区别**: `const`...
在C++编程语言中,`const`类型限定符是一个非常重要的特性,用于声明变量、函数参数或成员函数不可变。然而,在实际编程过程中,我们可能会遇到`const`类型的不兼容问题,这通常涉及到对`const`修饰的成员函数的调用...
在C++编程语言中,函数修饰符是用来控制函数行为的关键字。这些修饰符可以在函数声明时添加,以改变函数的特性、行为或访问权限。在本文中,我们将深入探讨C++中的函数修饰符,分为函数名前和函数名后两大类别。 ##...
### C++中`const`关键字的详尽解析与应用实例 #### 一、`const`基本用法 **1.1 限定符声明变量只能被读** `const`关键字用于声明一个只读变量,这意味着一旦该变量被初始化后,其值就不能被更改。例如: ```cpp ...
然而,需要注意的是,const_cast只适用于指针和引用类型,而且不能用来修改const修饰的临时对象或通过顶层const限定的值。使用const_cast修改const数据时,必须确保有权限修改该数据,否则可能导致未定义的行为。 ...
C++ 中的 const 关键字是非常重要的,它可以用来修饰变量、指针、函数参数、返回值、成员函数等,具有非常多的用途。下面将对 const 的使用做详细的解释。 一、const 基础 const 关键字可以用来修饰变量、指针等,...
在C++编程语言中,`const`限定符是一种非常重要的工具,它用于限制变量、函数参数或对象的可修改性。在与指针结合使用时,`const`可以帮助我们更好地控制程序中的数据安全,防止不必要的修改,提升代码的可读性和可...
`const` 关键字在 C 和 C++ 编程语言中非常常见,它用来声明一个常量或者指定某个变量的某个方面为不可变。使用 `const` 可以提高代码的健壮性和可读性。 - **提高代码安全性**:通过限制对某些数据的修改,可以...
在C++编程语言中,修饰符是用于扩展和定制基本数据类型的关键元素,它们使得开发者能够更加精确地控制变量的属性。本篇文章将详细讲解C++中的修饰符类型及其用法,这对于C++初学者来说是非常重要的基础知识。 首先...
在C/C++编程中,`const`关键字是一个非常重要的元素,它用来声明常量和限定变量的可修改性。理解并正确使用`const`能够提高代码的可读性、健壮性和效率。以下是对`const`关键字不同用法的详细说明: 1. **定义常量*...
文件 .txt 格式,方便编辑,打印 01.C_C++中利用数组名指针进行排序实例.txt ...03.入门教程C++中的const限定修饰符.txt ... 有空多去去 http://meooo.download.csdn.net/ 也许有你喜欢东西和书籍......
- 在类的成员函数声明中,`const`修饰符后的成员函数被称为“常成员函数”,它们不能修改对象的非静态成员变量,除非这些变量也是`mutable`的。 - 使用`const_cast`可以解除`const`限定,但这样做通常意味着违反了...
在C/C++编程中,`const`关键字是一个非常重要的元素,它用于定义常量和限定对象的行为。以下是对`const`用法的详细说明: 1. **修饰常量**: 当`const`用于声明变量时,它表示该变量是一个常量,其值在声明后不可...
书中详细讲解了const限定修饰符的使用,以及如何在C++中使用内联函数、虚函数和运算符重载等特性来增强代码的功能和灵活性。 面向对象编程是C++的一个核心特性,本书专设章节进行入门级讲解。这包括类(class)的基本...
15. **const_cast**:用于去除const或volatile限定符。 16. **continue**:跳过当前循环迭代的剩余部分,继续下一次迭代。 17. **default**:用于初始化列表或switch语句中的默认分支。 18. **delete**:释放...
在C++编程语言中,`const`关键字是一种类型限定符,被广泛用于提升代码的安全性与可读性。本文将深入探讨`const`的不同用法及其背后的原理。 #### 1. `const`修饰参数 - **基本概念**:`const`修饰一个变量时,...
通过本文对C++中`const data`的深入研究,我们不仅了解了`const`修饰符在不同上下文中的应用及其带来的优势,还掌握了其背后的内存管理与访问控制机制。`const`数据不仅是编程实践中安全性与效率的重要保障,也是...