`
tomhibolu
  • 浏览: 1431628 次
文章分类
社区版块
存档分类
最新评论

关注C++细节——万能const限定符与指针

 
阅读更多

不记得谁说过,能用const的时候尽量用const。确实,const为增加程序的健壮性做出了很大贡献,但是const修饰指针的时候还是值得注意的。

一.指向const对象的指针;

如果指针指向const对象,那么很显然不能通过指针改变其所指向的const值。为了保证这个特性,C++语言强制要求指向const对象的指针也必须要具有const特性。

const double = 1.0;

const double *cpt;

cpt=&d;

const类型的指针变量为什么可以重新赋值?其实这里的cpt是一个指向double类型const对象的指针,const限定的是cpt指针所指向的对象类型,而并非cpt本身。也就是说,cpt本身并不是const。所以cpt在定义的时候不需要一定初始化,允许给cpt重新赋值,指向另一个const对象。

需要注意:可以把一个普通对象的地址赋给指向一const对象的指针,但不可以把一个const对象地址赋给一个普通类型指针,否则会出现编译错误。不能使用指向const对象的指针修改基础对象。无论const指针指向的对象是不是const类型,系统都会把它所指的所有对象都视为const,仅限于该指针的const对象(通过该指针不能修改其值);

二.const指针;

除指向const对象的指针外,C++语言还是提供了const指针——本身的值不能修改。

int iNum = 1;

int * const icpt=&iNum;

这里的icpt是const类型——不能再指向其他的对象。任何企图给const指针赋值的行为都回导致编译错误。这里值得注意的是指针本身的const类型并没有说明是否能用该指针修改它所指向对象的值。指针所指对象的值能否修改完全取决于该对象的类型。

int iNum = 5;

int * const icpt=&iNum;

*icpt=4;//这里完全可以,因为iNum是普通变量

三.指向const对象const指针;

这里要说明的就是上两种情况的结合出现,即const类型的指针指向了const类型的对象。

const double pi=3.14;

const double * const pt=π

今天先总结这么多了,欢迎大家留言交流学习。


分享到:
评论

相关推荐

    C++中的const限定修饰符

    ### C++中的const限定修饰符 #### 一、引言 在C++编程语言中,`const`关键字是一个非常重要的特性,它可以帮助开发者确保某些数据或对象在其生命周期内的不变性,从而提高代码的安全性和可维护性。本文将详细介绍`...

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

    本篇文章将深入探讨`const`限定符的各个方面,包括初始化、指针、引用以及一些特殊规则。 1. `const`变量的初始化: `const`变量在声明时必须进行初始化,因为它们一旦创建,其值就不能更改。例如,以下代码是正确...

    C++:浅谈修饰符const

    6. const限定函数的值型返回值:函数返回值前使用const限定表明函数返回的是一个常量对象,这意味着返回的对象不能被赋值或修改。 7. const限定类的成员函数:类成员函数声明中的const表示该函数不会修改调用它的...

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

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

    c++ primer中的const限定符

    在C++编程语言中,`const`限定符是一个至关重要的概念,它用于声明不可变的对象。`const`关键字可以应用于变量、指针和引用,帮助程序员确保某些数据不会被意外修改,从而增强程序的稳定性和安全性。以下是关于`...

    30天掌握C++精髓——经典教程

    const限定修饰符是C++编程中保证数据安全的重要工具。 4. 在C++中,引用类型提供了一种访问变量的别名方式。通过引用,可以不用返回值就能将函数的修改反映到实际变量上。 5. C++中的布尔类型用于表示逻辑值,它有...

    C++ 指针 及其实例

    指针的定义与运算 指针与数组的关系 字符串函数 指针与const限定符 传递指针参数 动态内存分配方法 函数指针

    C++Primer const限定符

    总结起来,`const`限定符在C++中扮演着确保数据安全、防止意外修改的重要角色。它可以应用于变量、引用和指针,提供了一种控制程序行为的有效手段。理解并熟练运用`const`,可以提升代码的清晰度、可读性和安全性,...

    C++const关键字详解

    在C++编程语言中,`const`关键字是一个非常重要的概念,它用于声明常量、限定函数参数以及优化内存管理。本文将深入探讨`const`关键字的各种用法和其背后的原理,帮助读者更全面地理解和应用这一特性。 #### 一、...

    C++中const关键字详解

    2. **指针**: `const`可以用来限定指针的使用方式,比如限制指针所指的对象不可修改或者限制指针本身的不可变性。 3. **函数参数**: 通过将函数参数声明为`const`,可以确保函数不会修改传入的参数。 4. **返回值**:...

    C++ const使用详解

    C++ 中的 const 关键字非常重要,它可以用来限定变量、指针、函数参数、返回值、成员函数等的值不能被修改。使用 const 可以提高代码的安全性和可读性。但是,需要正确地使用 const,以免出现错误。

    C++笔记整理

    const限定符是C++中的一种限定符,用于限定变量或函数的行为。const限定符可以用于限定变量的值不可以被修改,也可以用于限定函数的返回值不可以被修改。 七、总结 C++语言是一个功能强大且灵活的编程语言,本文档...

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

    在C++编程语言中,`const`类型限定符是一个非常重要的特性,用于声明变量、函数参数或成员函数不可变。然而,在实际编程过程中,我们可能会遇到`const`类型的不兼容问题,这通常涉及到对`const`修饰的成员函数的调用...

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

    首先,const_cast运算符主要用于去除指针或引用的const、volatile和__unaligned限定符。在实际编程中,有时我们需要修改原本设计为const的数据,例如,对某个对象的const成员函数进行修改。const_cast允许我们通过...

    const的用法,较详细(c++)

    3. **成员函数中的const限定符**:在编写类时非常重要,能够帮助我们区分哪些方法是只读的,从而更好地维护代码的一致性和安全性。 通过上述内容,我们可以看到`const`关键字在C++中的多方面应用,合理地使用`const...

    c++中const用法详解

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

    C++ const用法及注意事项

     (一) const限定符(p49)  定义const对象时要初始化  除非特别说明,在全局作用域声明的const变量是定义该对象为文件的局部变量。此变量只存在于那个文件中,不能被其他文件访问  通过制定const变量为...

    C++中const使用

    1. **限定符声明变量只能被读** `const`关键字可以用来声明一个变量为只读,意味着一旦赋值后,就不能再次修改。例如: ```cpp const int i = 5; int j = 0; i = j; // 非法,导致编译错误 j = i; // 合法 ``...

    C++const的用法

    1. 限定符声明变量只能被读 const int i=5; int j=0; ... i=j; //非法,导致编译错误 j=i; //合法 在上面的代码中,我们可以看到,const 变量 i 只能被读不能被写,而非 const 变量 j 则可以被读写。 2. 必须...

Global site tag (gtag.js) - Google Analytics