指向常对象的指针变量
来源:互联网 发布:陈子豪的淘宝店 编辑:程序博客网 时间:2024/05/17 08:53
为了更容易理解指向常对象的指针变量的概念和使用,首先了解指向常变量的指针变量,然后再进一步研究指向常对象的指针变量。
下面定义了一个指向常变量的指针变量
ptr: const char *ptr;
注意const的位置在最左侧,它与类型名char紧连,表示指针变量ptr指向的char变量是常变量,不能通过ptr来改变其值的。
定义指向常变量的指针变量的一般形式为
const 类型名 *指针变量名;
说明:
(1) 如果一个变量已被声明为常变量,只能用指向常变量的指针变量指向它,而不能用一般的(指向非const型变量的)指针变量去指向它。
(2) 指向常变量的指针变量除了可以指向常变量外,还可以指向未被声明为const的变量。此时不能通过此指针变量改变该变量的值。如果希望在任何情况下都不能改变c1的值,则应把它定义为const型。
(3) 如果函数的形参是指向非const型变量的指针,实参只能用指向非const变量的指针,而不能用指向const变量的指针,这样,在执行函数的过程中可以改变形参指针变量所指向的变量(也就是实参指针所指向的变量)的值。
如果函数的形参是指向const型变量的指针,在执行函数过程中显然不能改变指针变量所指向的变量的值,因此允许实参是指向const变量的指针,或指向非const变量的指针。
以上的对应关系与在(2)中所介绍的指针变量和其所指向的变量的关系是一致的: 指向常变量的指针变量可以指向const和非const型的变量,而指向非const型变量的指针变量只能指向非const的变量。
以上介绍的是指向常变量的指针变量,指向常对象的指针变量的概念和使用是与此类似的,只要将“变量”换成“对象”即可。
(1) 如果一个对象已被声明为常对象,只能用指向常对象的指针变量指向它,而不能用一般的(指向非const型对象的)指针变量去指向它。
(2) 如果定义了一个指向常对象的指针变量,并使它指向一个非const的对象,则其指向的对象是不能通过指针来改变的。如果希望在任何情况下t1的值都不能改变,则应把它定义为const型。
(3) 指向常对象的指针最常用于函数的形参,目的是在保护形参指针所指向的对象,使它在函数执行过程中不被修改。
请记住这样一条规则: 当希望在调用函数时对象的值不被修改,就应当把形参定义为指向常对象的指针变量,同时用对象的地址作实参(对象可以是const或非const型)。如果要求该对象不仅在调用函数过程中不被改变,而且要求它在程序执行过程中都不改变,则应把它定义为const型。
(4) 如果定义了一个指向常对象的指针变量,是不能通过它改变所指向的对象的值的,但是指针变量本身的值是可以改变的。
- 指向常对象的指针变量
- 指向常对象的指针变量
- C++指向常对象的指针变量
- 指向常对象的指针变量
- 常对象+常对象成员+指向对象的常指针+指向常对象的指针变量+对象的常引用
- 指向对象的常指针变量与指向常对象的指针变量区别
- 指向常对象的指针变量和指向对象的常指针
- 常指针,指向常变量的指针
- 指向常对象的常指针
- 指向变量的常指针与指向常变量的指针变量的区别
- 常指针与指向常对象的指针
- C++指向对象的常指针
- 指向变量的常指针和指向常变量的指针
- 指向对象的指针变量
- C++中指向对象的常指针和指向常对象的指针
- 区分指向对象的常指针和常对象的指针
- 指向对象成员变量的指针
- 常量指针,常指针,指针常量,指向常量的指针,为什么常量指针仍可以指向变量
- switch
- 按数组中元素出现的次数排序
- applet将服务器上文件下载到本机指定目录下 求解
- 设计模式学习笔记
- The feeling after reading >
- 指向常对象的指针变量
- 经典书籍
- jdk配置
- Step-By-Step Installation of 9i RAC on IBM AIX(3) 转载
- android手机自带浏览器无法识别apk文件
- linux的文件系统结构
- linux iptables 端口 防火墙 规则
- MyEclipse里servlet的路径问题
- 整理: 界面库资料