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与指针的更多相关文章

  1. C++中的const和指针组合

    在C++里,const修饰指针有以下三种情况 (1)指针常量:即指向常量的指针 const  int *p或者int const *p const在*前,,可以这样理解它的功能,因为const在*前, ...

  2. 面试集锦-常量,const, const 对指针的影响

    在C语言中不可改变的数据(量)就是常量    在C语言中有三种常量        字面量(直接量),就是直接写出来的,从写法上就可以看出值与类型等,例如:19,123.456等        名字常量 ...

  3. C语言 const与指针

    //const与指针 #include<stdio.h> #include<stdlib.h> void main(){ ; ; const int *p; p = & ...

  4. 弄清const与指针、引用之间的关系

    const和 define在常量定义上的差别 在C++中,我们可以使用const 或者 宏define来定义常量.但是C++鼓励使用const定义常量,而不是宏define.原因有很多. 1.defi ...

  5. const修饰指针

    关于const修饰指针的情况,一般分为如下4种情况: ; const int *a =&b; //情况1 int const *a =&b; //情况2 int* const a =& ...

  6. 指向const的指针和const指针

    1.指向const的指针:const int *p 或 int const *p 解释:p是一个指针,指向const int类型的常量:指针指向的内容为常量,因此不能改变*p的值,但指针p可以改变,指 ...

  7. const 指针与指向const的指针

    最近在复习C++,指针这块真的是重难点,很久了也没有去理会,今晚好好总结一下const指针,好久没有写过博客了,记录一下~ const指针的定义: const指针是指针变量的值一经初始化,就不可以改变 ...

  8. [001]const和指针

    很经典的: const int* p: int* const p: 前者表示指针指向的值是const,指向的值不可变,但是指针本身是可变的:后者表示改指针是const,指针不可变,但是指向的值是可变的 ...

  9. C语言--const修饰指针解析

          这种例子在我们平时编程时可能会很少用,但是在面试时被问的可能性就很大了. 用const修饰指针,常见的情况可以分为四种: 1.const int *p; // p 可变,p 指向的对象不可 ...

  10. 比较常见的const与指针的组合情况

    1.对于普通的const与基本类型组合,都是表示的是这是一个常量, const int a; int const a; 表示的意思是一样的,a是一个常量,不可改变 2.对于const与指针组合在一起, ...

随机推荐

  1. android开发入门经验 ADT Bundle环境搭建

    现在有许多做开发的转做移动端开发,做J2EE的转做Android开发,我也把自己的一些入门经验与大家分享一下,希望能给你带来帮助. 工具/原料 JDK,ADT,JAVA 方法/步骤   开发工具的准备 ...

  2. careercup-树与图 4.9

    4.9 给定一颗二叉树,其中每个结点都含有一个数值.设计一个算法,打印结点数值总和等于某个给定值的所有路径.注意,路径不一定非得从二叉树的根节点或叶子节点开始或结束. 类似于leetcode:Path ...

  3. 动作之CCActionInterval(持续动作)家族

    持续动作,顾名思义,就是该动作的执行将持续一段时间.因此持续动作的静态生成函数,往往附带一个时间值Duration. 持续动作类名后缀:一般有两种后缀,一种是To,一种是By.To表示最终达到的目标值 ...

  4. Top 10 questions about Java Collections--reference

    reference from:http://www.programcreek.com/2013/09/top-10-questions-for-java-collections/ The follow ...

  5. .Net设计模式_原型模式

    引言: 原型,感觉就是拷贝,只是给拷贝分了深拷贝和浅拷贝. 理解: 在C#.Net里面,我们可以很容易的通过Clone()方法实现原型模式. 任何类,只要想支持克隆,必须实现C#中的ICloneabl ...

  6. Scala应用函数

    我们使用“_” 来代替单个的参数,实际上你也可以使用“_”来代替整个参数列表,比如说,你可以使用 print _ 来代替 println (_). someNumbers.foreach(printl ...

  7. C#用副线程改主线程(UI线程)的控件属性的方法(包括Winform和WPF)

    C#用副线程去试图修改主线程的UI控件会报出异常,解决方案是使用副线程注册事件通知主线程自己去修改UI控件 在winform中,方法如下 private void button1_Click(obje ...

  8. ThinkPHP函数详解系列

    为了能方便大家学习和掌握,在这里汇总下ThinkPHP中的经典函数用法 A 函数:实例化控制器R 函数:直接调用控制器的操作方法C 函数:设置和获取配置参数L 函数:设置和获取语言变量D 函数:实例化 ...

  9. YII数据库操作(CURD操作)

    数据库操作 获得模型对象 $model = 模型名::model();或$model = new 模型名(); 1.查询多条记录(返回值:二维数组) $result = $model->find ...

  10. spring MVC fromeWork 與webwork2 mvc 比較

    http://www.blogjava.net/xxxzheng/articles/7614.html 在当今的MVC framework里,似乎Webwork2逐渐成为主流, Webwork2+Sp ...