不记得谁说过,能用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`关键字是一个非常重要的特性,它可以帮助开发者确保某些数据或对象在其生命周期内的不变性,从而提高代码的安全性和可维护性。本文将详细介绍`...
本篇文章将深入探讨`const`限定符的各个方面,包括初始化、指针、引用以及一些特殊规则。 1. `const`变量的初始化: `const`变量在声明时必须进行初始化,因为它们一旦创建,其值就不能更改。例如,以下代码是正确...
6. const限定函数的值型返回值:函数返回值前使用const限定表明函数返回的是一个常量对象,这意味着返回的对象不能被赋值或修改。 7. const限定类的成员函数:类成员函数声明中的const表示该函数不会修改调用它的...
总的来说,`const`限定符与指针的组合使用是C++中控制程序行为和数据安全性的重要手段。正确使用它们可以避免意外的修改,提高代码的可靠性和可维护性。通过深入理解和熟练应用这些概念,开发者能够编写出更加优雅和...
在C++编程语言中,`const`限定符是一个至关重要的概念,它用于声明不可变的对象。`const`关键字可以应用于变量、指针和引用,帮助程序员确保某些数据不会被意外修改,从而增强程序的稳定性和安全性。以下是关于`...
const限定修饰符是C++编程中保证数据安全的重要工具。 4. 在C++中,引用类型提供了一种访问变量的别名方式。通过引用,可以不用返回值就能将函数的修改反映到实际变量上。 5. C++中的布尔类型用于表示逻辑值,它有...
指针的定义与运算 指针与数组的关系 字符串函数 指针与const限定符 传递指针参数 动态内存分配方法 函数指针
总结起来,`const`限定符在C++中扮演着确保数据安全、防止意外修改的重要角色。它可以应用于变量、引用和指针,提供了一种控制程序行为的有效手段。理解并熟练运用`const`,可以提升代码的清晰度、可读性和安全性,...
在C++编程语言中,`const`关键字是一个非常重要的概念,它用于声明常量、限定函数参数以及优化内存管理。本文将深入探讨`const`关键字的各种用法和其背后的原理,帮助读者更全面地理解和应用这一特性。 #### 一、...
2. **指针**: `const`可以用来限定指针的使用方式,比如限制指针所指的对象不可修改或者限制指针本身的不可变性。 3. **函数参数**: 通过将函数参数声明为`const`,可以确保函数不会修改传入的参数。 4. **返回值**:...
C++ 中的 const 关键字非常重要,它可以用来限定变量、指针、函数参数、返回值、成员函数等的值不能被修改。使用 const 可以提高代码的安全性和可读性。但是,需要正确地使用 const,以免出现错误。
const限定符是C++中的一种限定符,用于限定变量或函数的行为。const限定符可以用于限定变量的值不可以被修改,也可以用于限定函数的返回值不可以被修改。 七、总结 C++语言是一个功能强大且灵活的编程语言,本文档...
在C++编程语言中,`const`类型限定符是一个非常重要的特性,用于声明变量、函数参数或成员函数不可变。然而,在实际编程过程中,我们可能会遇到`const`类型的不兼容问题,这通常涉及到对`const`修饰的成员函数的调用...
首先,const_cast运算符主要用于去除指针或引用的const、volatile和__unaligned限定符。在实际编程中,有时我们需要修改原本设计为const的数据,例如,对某个对象的const成员函数进行修改。const_cast允许我们通过...
3. **成员函数中的const限定符**:在编写类时非常重要,能够帮助我们区分哪些方法是只读的,从而更好地维护代码的一致性和安全性。 通过上述内容,我们可以看到`const`关键字在C++中的多方面应用,合理地使用`const...
### C++中`const`关键字的详尽解析与应用实例 #### 一、`const`基本用法 **1.1 限定符声明变量只能被读** `const`关键字用于声明一个只读变量,这意味着一旦该变量被初始化后,其值就不能被更改。例如: ```cpp ...
(一) const限定符(p49) 定义const对象时要初始化 除非特别说明,在全局作用域声明的const变量是定义该对象为文件的局部变量。此变量只存在于那个文件中,不能被其他文件访问 通过制定const变量为...
1. **限定符声明变量只能被读** `const`关键字可以用来声明一个变量为只读,意味着一旦赋值后,就不能再次修改。例如: ```cpp const int i = 5; int j = 0; i = j; // 非法,导致编译错误 j = i; // 合法 ``...
1. 限定符声明变量只能被读 const int i=5; int j=0; ... i=j; //非法,导致编译错误 j=i; //合法 在上面的代码中,我们可以看到,const 变量 i 只能被读不能被写,而非 const 变量 j 则可以被读写。 2. 必须...