指针常量和常量指针

标签: 指针常量 常量指针
3人阅读 评论(0) 收藏 举报
分类:

一、首先教大家如何区分指针常量、常量指针(知乎大神介绍《c primer plus》中的方法)

      现列出指针常量和常量指针的各种写法:

  1. const int p;
  2. const int* p;
  3. int const* p;
  4. int * const p;
  5. const int * const p;
  6. int const * const p;

第一种是常量整数,这个很容易确定;

接下来就是重头戏了:

要介绍的方法就是:从右往左读,遇到 p 就替换成 “p is a”遇到 * 就替换成“point to”。

就上面的各种写法举例:2. 读作 p is a point to int const

                                     翻译为 p是一个指向整型常量的指针

                                    3. 读作 p is a point to const int       可以看出 3. 和 2. 是一样的;

                                    4. 读作 p is a const point to int

                                    翻译为 p是一个常量指针,指向int

                                    5.读作 p is a const point to int const

                                   翻译为 p是一个常量指针,指向整型常量

                                    6. 同理跟 5. 是一样的

现在是不是很容易就能分清 指针常量 和 常量指针了呢?


二、那我们接下来看一下 指针常量 和 常量指针的 具体概念

1. 指针常量:指针本身是常量。换句话说,指针里面所存储的内容(内存地址)是常量,不能改变,但是,内存地址所对应的内

                    容是可以通过指针改变的。

2.常量指针:指向常量的指针,它指向的内容不能发生改变,不能通过指针来修改它指向的内容。但是,指针自身不是常量,它

                    自身的值可以改变,从而指向另一个常量。必须初始化。

总结是 const “离谁近,修饰谁”。


查看评论

一句话区分常量指针和指针常量

学过C或者C++的人都知道,刚开始接触指针时一定会被常量指针和指针常量搞得晕头转向,两者老是傻傻分不清楚。我昨天想到了一个办法,可以让大家很容易的区分两者。 首先来看一下两者的写法: 常量指针: ...
  • xingjiarong
  • xingjiarong
  • 2015-08-07 09:51:59
  • 3270

C++常量指针与指针常量的区别

C++提供了用const定义常变量的方法,例如:const int a =5;  或者 int const = 5;表示变量的值是固定的,不能进行修改。这里主要区分一下指针常量和常量指针。 1:指...
  • xckkcxxck
  • xckkcxxck
  • 2017-02-27 22:02:15
  • 638

C语言中的常量指针和指针常量

关于常量指针和指针常量已经试着记过好几次了,平时用得也不多,老是记不住,两个总给搞混了,今天在华为面试又问到这个问题,真的应该把它整理清楚了。 定义 : const char* pa; 或...
  • Nocky
  • Nocky
  • 2008-03-02 09:22:00
  • 2731

指针常量和常量指针的区别

指针常量:指针所指向的地址里的内容不能被改变。不能被改变是指不能通过这个指针来改变。如:1 int * ptr=NULL;2 int a=1;3 ptr=&a;4 *ptr = 2;5 a=2;这个例...
  • little_knife
  • little_knife
  • 2007-01-17 11:39:00
  • 4205

C++ 指针常量、常量指针和常指针常量

1、指针常量 如果在定义指针变量时候,指针变量前用const修饰,被定义的指针变量就变成了一个指针类型的常变量,指针类型的常变量简称为指针常量。 格式如下 数据类型  *   const  指针变...
  • yujin753
  • yujin753
  • 2014-11-26 22:12:41
  • 1698

常量指针和指针常量巧妙记忆方法

1.常量指针通常有两种表示方法: method 1: const double * ptr; method 2: double const *ptr; 2.指针常量通常表示为: double ...
  • a15261893837
  • a15261893837
  • 2017-04-25 21:12:16
  • 581

C++的this指针和常量指针、指针常量的区别

const char *p; 常量指针,指向一块区域,这块区域不可写,只能读,但是指针p是可以读写的。 char * const p; 指针常量,指向一块区域,这块区域可读可写,但是指针的值初始后就...
  • debugingstudy
  • debugingstudy
  • 2013-10-13 00:57:48
  • 1353

linux c 中关于指针常量和常量指针以及数组的关系与区别

常量指针:          他是一个指针 只不过这个指针比较特别  他是一个受限的常量 (为什么这么讲呢 因为他不能通过指针去改变所指向的地址的值)。          char const *p;...
  • sdc20102010
  • sdc20102010
  • 2017-02-23 19:31:01
  • 327

3.常量指针、指针常量、指针数组、数组指针、指针函数、函数指针

常量指针与指针常量 指针数组与数组指针 指针函数与函数指针 常量指针:const int*  p; 常量指针特点:是一个指针,可改变指向,不能改变值 指针常量:int* ...
  • wm18271395106
  • wm18271395106
  • 2017-12-04 22:33:50
  • 42

详解指针常量和常量指针(C、C++工程师面试题)

常量指针:指向常量的指针。 指针本身可以改变,可以再次指向另外的对象。 不能通过指针修改其所指向的对象的值。 指针常量:指针类型的常量。 指针本身的值不能改变,即不能再指向另外的对象。 可以修改指针...
  • rl529014
  • rl529014
  • 2016-06-08 18:35:30
  • 1195
    个人资料
    持之以恒
    等级:
    访问量: 2001
    积分: 241
    排名: 30万+
    文章分类