指向常量的指针 VS 指针类型的常量

const 修饰指针时的位置不同,作用也不相同。

1. 指向常量的指针

不能通过指向常量的指针改变所指对象的值,但指针本身可以改变,可以指向另外的对象。

例:

int a;
const int *p1 = &a; //p1是指向常量的指针
int b;
p1 = &b; //正确,p1本身的值可以改变
*p1 = 1; //编译时出错,不能通过p1改变所指的对象

当想要将对象以只读的方式赋给指针时,可以采用在前面加const修饰,此时定义的这个指针所指向的内容就不可以被修改了。

2. 指针类型的常量

若声明指针常量,则指针本身的值不能被改变。

例:

int a;
int * const p2 = &a;
p2 = &b; //错误,p2是指针常量,值不能改变

const 修饰在后,指针本身就不可以修改了。

[C++] 指向常量的指针 VS 指针类型的常量相关推荐

  1. C++ 指向常量的指针与指针类型的常量

    (1)声明指向常量的指针时,不能通过指针来改变所指对象的值,但指针本身可以改变,可以指向另外的对象. #include<iostream>using namespace std;int m ...

  2. 常引用、常量指针、指针常量、指向常量的常指针、空指针与野指针解释

    1.一.基础知识 引用并非对象 引用必须初始化 引用只能绑定在对象上,而不能与字面值或某个表达式的计算结果绑定在一起 类型要严格匹配 int &a = 10; //错误:引用类型的初始值必须是 ...

  3. c++ 表达式必须包含指向类的指针类型_C++:18const关键字(附常量指针、指针常量、常量指针常量)...

    一.const变量的一些基本特点 ①const修饰的变量不能被修改 const int a=10; a=20;//错误 ②因为const修饰的变量不能被修改,所以必须被初始化 int a=10; co ...

  4. 常量指针、指针常量以及指向常量的指针常量

    三个名词虽然非常绕嘴,不过说的非常准确.用中国话的语义分析就可以很方便地把三个概念区分开.  一)常量指针. 常量是形容词,指针是名词,以指针为中心的一个偏正结构短语.这样看,常量指针本质是指针,常量 ...

  5. 关于空指针(指针指向为NULL)和void类型的指针的理解

    正在学C,书上老说空指针,或者说void指针,对于我这样的生手来说,理解非常容易造成混淆,因为void这个单词的意思也是空,到底空指针的意思是指指向地址为空的类型呢,还是指void类型的指针呢 (1) ...

  6. 指向指针数组的指针和指针数组类型的指针

    目录 基本操作 指向指针数组的指针 指针数组类型的指针 基本操作 通常我们通过以下方式进行指针变量的定义: /* a pointer to unsigned char */ unsigned char ...

  7. C++ 笔记(27)— 指针变量、数组和指针、指针数组、数组指针、指针常量与常量指针

    1. 什么是指针变量? 指针变量是专门有一个变量来存放指针. int main(int argc, char *argv[]) {int a = 10;int *p = &a; //通过取地址 ...

  8. 数组指针和指针数组,函数指针和指针函数,常量指针和指针常量,常量引用

    一.数组指针和指针数组 1.数组指针(行指针) 首先要知道数组指针是指向数组的指针.所以数组指针本质是个指针,只不过指向一个数组而已.格式为:T (*ptr)[]. 注意:"[]" ...

  9. C语言程序设计 | 指针(二):常量指针和指针常量、数组参数和指针参数、函数指针数组

    指针的进阶(二)目录: 常量指针和指针常量 数组参数和指针参数 函数指针数组 常量指针和指针常量 在我们日常中,经常会用到一个关键字const const是一个C语言(ANSI C)的关键字,具有着举 ...

最新文章

  1. 『并发包入坑指北』之阻塞队列
  2. 开源CDN加速管理工具 OpenCDN
  3. ImageView可直接调用的,根据URL设置图片的工具类
  4. 实现 ASP.NET WebForm Client
  5. STM32开发 -- 状态机与状态切换逻辑
  6. Numpy 生成随机数和乱序
  7. python convert函数_Python内置函数
  8. 前端学习(2617):删除品牌
  9. 2020-08-24
  10. 【VRP问题】基于狼群算法WPA求解带时间窗车辆路径规划问题(VRPTW)matlab源码
  11. 宝塔面板nginx跨域配置(跳坑)
  12. Origin修改安装位数
  13. 关于对《上海市人民政府办公厅关于执行〈上海市非营业性客车额度拍卖管理规定〉若干要求的通知》的政策解读...
  14. 用计算机连接路由器,怎样连接路由器和电脑_电脑怎么链接路由器-系统城
  15. IPv6基础介绍--IPv6路由基础--DHCPv6原理与配置——总结
  16. 以后有了孩子要起名就在这上面选啊!
  17. 备案需要域名证书吗?如何下载域名证书?
  18. APP调用支付宝客户端发起支付
  19. 数字化转型:为何数字化?如何数字化转型?
  20. sdk+windows安装教程

热门文章

  1. 如何将CSDN文档输出PDF文件?
  2. 第十六届全国大学生智能车竞赛线上赛点赛道审核 - 西部赛区
  3. 通用双谐振固态特斯拉驱动器 UD2.7
  4. Boston房价PaddlePaddle测试程序
  5. 看看那些来自电路造型挑战赛中的作品
  6. 360 自动打开word_EXCEL的数据和图表如何与ppt,Word关联,看完你就会了
  7. abb焊接机器人编程全解_焊接机器人的焊枪编程也是很重要的
  8. mysql 使用手册 权限_创建MySQL用户及用户权限管理
  9. android ajax 跨域更新本地html,本地webapp是怎么解决跨域问题的?
  10. 中考考试的指令广播_明天FM105.2《朝朝早精神好》推出2017广州中考日特别报道...