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. zTree下拉菜单多级菜单多选实现

    惯例,先上图: 这是在一个项目中,为了满足样式美观.多级菜单以及多选而将zTree插件更改过后的效果. 在实际的开发过程中,本来zTree也是可以满足需求的,但是zTree多选的话需要checkbox ...

  2. AFNetworking源码分析

    来源:zongmumask 链接:http://www.jianshu.com/p/8eac5b1975de 简述 在iOS开发中,与直接使用苹果框架中提供的NSURLConnection或NSURL ...

  3. 判断URL是否存在

    判断URL是否存在   判断网址是否存在,可以使用下面方面处理.如果HttpStatusCode为OK,说明网址存在.

  4. 对Cookie进行增删改查

    public class CookieServletDemo extends HttpServlet { public void doGet(HttpServletRequest request, H ...

  5. 动态使用webservice,以及含有ref类型的参数的问题

    public class WSHelper { /// < summary> /// 动态调用web服务 /// < /summary> /// < param name ...

  6. css-01

    1.CSS:级联样式表,设置页面的样式 2.css基本的语法:     属性:值; 3.CSS的引入   |-1.元素内容的引入:内联样式       <元素名 style="属性:值 ...

  7. javascript创建对象和属性的几种方式

    一句话,javascript里面的对象,即是函数.方法. (一)第一种: a.声明对象:var JHSoft = JHSoft || {}; 或者 var JHSoft=new Object(); b ...

  8. oracle 11g卸载方法

    在网上查看了很多卸载oracle11g的方法,但是感觉都太复杂了,没有使用,最后查看了很多资料,得到一种比较简单,而且能完全卸载的方法: 在根目录下运行c:\app\Administrator\pro ...

  9. iOS zipzap读取压缩文件

    最近在公司遇到一项需求,在不解压zip文件的情况下读取其中的文件,因为之前使用的ziparchive不能满足现在的需求,所以在网上一阵狂搜,终于找到了zipzap,实话说还真的难找. 之前读取本地zi ...

  10. Javascript模仿C语言的链表实现(增删改查),并且使用控制台输入输出

    Js新手最近在研究Js数据结构,刚好看到链表实现这一块儿,觉得有些资料和自己理解的有冲突,于是借着自己以前一点点C语言的基础,用Javascript模仿了C的链表实现,并且用了process.stdi ...