C++const与指针
1.指向常量的指针变量
指向常量的指针变量的定义方法:
const 类型标识符 *指针变量名;
如:
const int *p;
这种方法定义的指针变量只可读取它所指向的变量或常量的值,不可借助该指针变量对其所指向的对象的值进行修改(即重新赋值)。但是,可允许这种指针变量指向另外一个同类型的其他变量。
本人自学,教材可能有点老,有问题的话求大家指正!!!谢谢!!!
2.指针常量
指针常量的定义格式:
类型标识符 *const 指针变量名=初始指针值;
如:
char * const p="abcde";
该方法定义的指针变量,其值(是一个指针值)不可进行修改(即不允许该指针变量再指向另外一个别的变量),但可以借助该指针变量对其所指向的对象的值进行读取或修改。特别注意,这种指针在定义时必须初始化。
3.指向常量的指针常量
指向常量的指针常量的第一方法为:
const 类型标识符 * const 指针变量名 = 初始指针值;
如:
int b;
const int* const p=&b;
使用这种方法定义的变量,既不允许修改指针变量的值也不允许借助该指针变量对其所指向的对象的值进行修改。特别注意,该变量在定义的时候同样必须初始化。
例题:
- 指向常量的指针变量
#include<iostream>
using namespace std; int main()
{
const int i=;
int k =;
const int *p;
p=&i;
cout << *p << ' ' << i << endl;
p=&k;
cout << *p << ' ' << k << endl;
k=;
cout << k << endl;
return ;
}
- 指针常量
#include<iostream>
using namespace std; int main()
{
char s[]="hello world!";
char * const p=s;
//p="xyz"; //该句错误,不可再使指针变量指向另外一个地址(指针)
cout << *p << endl;
*p='w';
cout << *p << endl;
*p='q';
cout << *p << endl;
return ;
}
- 指向常量的指针常量
#include<iostream>
using namespace std; int main()
{
int a=;
int c=;
const int b=;
const int * const p=&a;
cout << *p << endl;
const int * const q=&b;
cout << *q << endl;
//p=&c; //错误
//*p=50; //错误
return ;
} //菜鸟,求大家批评指教,代码编写习惯和规范等等!!!谢谢!!!
本人自学,教材可能有点老,有问题的话求大家指正!!!谢谢!!!
C++const与指针的更多相关文章
- C++中的const和指针组合
在C++里,const修饰指针有以下三种情况 (1)指针常量:即指向常量的指针 const int *p或者int const *p const在*前,,可以这样理解它的功能,因为const在*前, ...
- 面试集锦-常量,const, const 对指针的影响
在C语言中不可改变的数据(量)就是常量 在C语言中有三种常量 字面量(直接量),就是直接写出来的,从写法上就可以看出值与类型等,例如:19,123.456等 名字常量 ...
- C语言 const与指针
//const与指针 #include<stdio.h> #include<stdlib.h> void main(){ ; ; const int *p; p = & ...
- 弄清const与指针、引用之间的关系
const和 define在常量定义上的差别 在C++中,我们可以使用const 或者 宏define来定义常量.但是C++鼓励使用const定义常量,而不是宏define.原因有很多. 1.defi ...
- const修饰指针
关于const修饰指针的情况,一般分为如下4种情况: ; const int *a =&b; //情况1 int const *a =&b; //情况2 int* const a =& ...
- 指向const的指针和const指针
1.指向const的指针:const int *p 或 int const *p 解释:p是一个指针,指向const int类型的常量:指针指向的内容为常量,因此不能改变*p的值,但指针p可以改变,指 ...
- const 指针与指向const的指针
最近在复习C++,指针这块真的是重难点,很久了也没有去理会,今晚好好总结一下const指针,好久没有写过博客了,记录一下~ const指针的定义: const指针是指针变量的值一经初始化,就不可以改变 ...
- [001]const和指针
很经典的: const int* p: int* const p: 前者表示指针指向的值是const,指向的值不可变,但是指针本身是可变的:后者表示改指针是const,指针不可变,但是指向的值是可变的 ...
- C语言--const修饰指针解析
这种例子在我们平时编程时可能会很少用,但是在面试时被问的可能性就很大了. 用const修饰指针,常见的情况可以分为四种: 1.const int *p; // p 可变,p 指向的对象不可 ...
- 比较常见的const与指针的组合情况
1.对于普通的const与基本类型组合,都是表示的是这是一个常量, const int a; int const a; 表示的意思是一样的,a是一个常量,不可改变 2.对于const与指针组合在一起, ...
随机推荐
- APUE习题5.x
5.4 下面的代码在一些机器上运行正确,而在另外一些机器运行时出错,解释问题所在? #include <stdio.h> int main( void ) { char c; while( ...
- svn出错错误
RA layer request failed ---------------------------- 解决方案:重启visulsvnserver 若重启不了 出现Service 'VisualSV ...
- 【iOS程序启动与运转】- RunLoop个人小结
学习iOS开发一般都是从UI开始的,从只知道从IB拖控件,到知道怎么在方法里写代码,然后会显示什么样的视图,产生什么样的事件,等等.其实程序从启动开始,一直都是按照苹果封装好的代码运行着,暴露的一些属 ...
- 小蔡计算器 V4.0新版全新发布上线啦~欢迎大家下载使用哈~
小蔡计算器4.0新版全新发布上线啦~欢迎大家下载使用哦~ 立即下载:http://www.zhentiyuan.com/windows/index.aspx 软件介绍:小蔡计算器4.0是一款界面优美的 ...
- Es6 之箭头函数 初学
不积跬步,无以至千里;不积小流,无以成江海! // ES5 var selected = allJobs.filter(function (job) { return job.isSelected() ...
- CSS3 transition-timing-function
CSS3 transition-timing-function 属性 定义和用法 transition-timing-function 属性规定过渡效果的速度曲线. 该属性允许过渡效果随着时间来改变其 ...
- Ext.Net学习笔记14:Ext.Net GridPanel Grouping用法
Ext.Net学习笔记14:Ext.Net GridPanel Grouping用法 Ext.Net GridPanel可以进行Group操作,例如: 如何启用Grouping功能呢?只需要在Grid ...
- NSMutableParagraphStyle /NSParagraphStyle
// NSParagraphStyleAttributeName 段落的风格(设置首行,行间距,对齐方式什么的)看自己需要什么属性,写什么 NSMutableParagraphStyle *par ...
- Objective-C MRC多个对象相互引用的内存管理
在MRC环境下,假定CTRoom对象是CTPerson的一个成员变量,那么修改CTRoom对象时应注意,代码如下: - (void) setRoom:(CTRoom *) room { //需判断新旧 ...
- Codevs 1191 数轴染色
1191 数轴染色 时间限制: 1 s 空间限制: 128000 KB 题目等级 : 黄金 Gold 题目描述 Description 在一条数轴上有N个点,分别是1-N.一开始所有的点都被染成黑色. ...