这两个概念经常很容易混淆,下面简单分析一下

1.常量指针:

int * const p   : const p 就是一个常量,然后再看*,可以看出是一个常量类型的指针,即int类型的常量指针。不能修改这个指针的指向,但是这个指针所指向的地址上存储的值可以修改。

(常量指针指向int, 常量指针肯定是无法改变地址,但指向的int值能改变)

代码实例

code1:#include<iostream>
#include<stdlib.h>
using namespace std;void main()
{int i1=30;int i2=40;int * const pi=&i1;     //这里的pi指针是常量,指向了i1地址//pi=&i2;             //注意这里,pi不能再指向另一个新地址。所以我已经注释了它。printf("%d\n", *pi ) ;    //输出是30i1=80;              //想想看:这里能用*pi=80;来代替吗?可以,这里可以通过*pi修改i1的值。printf("%d\n", *pi ) ;    //输出是80system("pause");
}

code 2:
char char_A = 'A';
char char_B = 'B';

char * const myPtr = &char_A;
myPtr = &char_B; // error - can't change address of myPtr

 

  

2.指向常量的指针

const int *p : *p就是一个指针,这个指针指向一个常量,不能通过指针来修改这个指针指向的值。

(指针指向一个常量int值,指针可以改变指向,但是所指向的值不能通过指针来改变)

代码实例

code1:

#include<iostream>
#include<stdlib.h>
using namespace std;void main()
{int i1=30;int i2=40;const int * pi=&i1;printf("%d\n", *pi ) ;    //输出是30pi=&i2;                 //注意这里,pi可以在任意时候重新赋值一个新内存地址i2=80;                  //想想看:这里能用*pi=80;来代替吗?当然不能printf("%d\n", *pi ) ;   //输出是80
system("pause");
}      

code2:
char char_A = 'A';
const char * myPtr = &char_A;
*myPtr = 'J';    // error - can't change value of *myPtr

转载于:https://www.cnblogs.com/huangliang-hb/p/9224288.html

常量指针与指向常量的指针相关推荐

  1. [C++基础]018_常量指针和指向常量的指针

    先来看一下什么是常量指针,什么是指向常量的指针吧! 1. 常量指针定义 1 int * const ptr = new int(); 2. 指向常量的指针 1 const int* ptr; 上面已经 ...

  2. const指针和指向常量的指针

    先看下面六种写法: 1. const int p;2. const int *p;3. int const* p;4. int * const p;5. const int * const p;6. ...

  3. 【转】const int *p和int * const p的区别(常量指针与指向常量的指针)

    [转]作者:xwdreamer   出处:http://www.cnblogs.com/xwdreamer 对于指针和常量,有以下三种形式都是正确的: const char * myPtr = &am ...

  4. 常指针和指向常量的指针

    最近在学习引用,有一些学习心得,记录如下: 1:引用是变量的别名 int a; int b&=a; 要注意引用只有声明,而没有定义,并且引用必须在声明的时候进行初始化,一旦与某个变量关联起来, ...

  5. 字符串的指针和指向字符串的指针变量

      引自:http://s319.dlut.edu.cn/educ/83.htm §8.4 字符串的指针和指向字符串的指针变量 8.4.1 字符串的表现形式 在C程序中,可以用两种方法实现一个字符串. ...

  6. 深入浅出C语言:(三)C 语言数组指针(指向数组的指针)

    目录 一.C 语言数组指针(指向数组的指针) 二.C 语言字符串指针(指向字符串的指针) 三.C 语言指针数组(数组每个元素都是指针) 四.二维数组指针(指向二维数组的指针) 五.指针数组和二维数组指 ...

  7. 超详细的const 指针与指向const的指针

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

  8. const指针和指向const的指针

    今天在看项目代码时,发现竟然可以给有const修饰的指针赋值,按道理的话,const修饰的不是常量吗?常量应该是初始化之后就不能再修改才对.对于这个问题,我大致的研究了一下. 参考const 指针与指 ...

  9. const指针与指向const的指针

    const指针与指向const的指针 const指针 如下代码: int main() {int num = 42;int* const p = # // p是常量指针,指向一个整型数cout < ...

  10. const与指针:指向const的指针与const指针的区别

    指针,可以说是C语言编程的掌上明珠,而将const应用于指针,会产生一些挺微妙的现象. 指向const的指针 第一种用法是令指针指向一个常量,称之为指向const的指针,可以防止使用该指针修改所指向对 ...

最新文章

  1. Linux命令(30):tar命令-归档工具
  2. shell 命令执行结果判断语句
  3. hdu 1228 A+B (字符串处理) 水
  4. MasterPage技术
  5. windows mobile设置插移动卡没反应_ETC不用时,能不能把卡拔下来
  6. 处理数字_1_计算某列的最小/大值
  7. 浅析负载均衡的6种算法,Ngnix的5种算法
  8. JQuery发起ajax请求,并在页面动态的添加元素
  9. 【PAT甲级 - 1013】Battle Over Cities (25分)(并查集)
  10. C++学习之路 | PTA乙级—— 1013 数素数 (20分)(精简)
  11. python包路径有几个_python的搜索路径与包(package)
  12. java 静态导入_Java中静态导入的使用
  13. c语言蜂鸣器放音乐程序,单片机蜂鸣器C语言程序
  14. 如何把桌面计算机和回收站隐藏,电脑回收站怎么隐藏图标,隐藏我的电脑和回收站...
  15. windows蓝屏原因速查表(常见蓝屏原因与解决方法速查(适用于Windows 7/8/8.1/10/11))
  16. [转摘]如何让你的计算机无线网卡和有线网卡同时使用
  17. 一度智信|拼多多客服售后须知
  18. 1.深度linux,深度操作系统20.2.1 发布
  19. Andorid开发中好用的库
  20. java.sql.SQLException: HOUR_OF_DAY: 2 -> 3

热门文章

  1. python3.7如何使用enum_我如何用Python表示‘Enum’?
  2. cuda 核函数 for循环_【CUDA 基础】6.2 并发内核执行
  3. acer清理工具 clear下载_时秋极致清理大师app下载安装_时秋极致清理大师软件最新版免费下载...
  4. java 取得textfield_怎样获取java中textfield的内容
  5. 智能车竞赛技术报告 | 智能车视觉 - 太原工业学院 - 晋速-轩辕星
  6. RT-Thread优化智能车设计
  7. 2021年春季学期-信号与系统-第十一次作业参考答案-第二小题
  8. 电子秤专用模拟/数字(A/D)转换器芯片 HX711
  9. python实现案例_基于Python实现相关分析案例
  10. 最好的浏览器排行榜_PG是最好的数据库;TiDB 4.0前瞻;SequoiaDB高可用原理;20c DG新特性... 数据库周刊第18期...