IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> C++知识库 -> C++ 指针常量/常量指针 const *point/*const point 一句话整明白 -> 正文阅读

[C++知识库]C++ 指针常量/常量指针 const *point/*const point 一句话整明白

精华——区分方法

从变量名出发,自右向左看,看看是先指针还是先常量

例如

常量指针——const pointer

int * const p
变量名是p,向左看,先看到const,我们就知道p是个常量,然后再看到*,我们就知道p是个常量指针——const pointer

常量指针意味着p的指向不能变,但是p指向的变量的值可以改变
int a=2;
int b=3;
int * const p=&a;//注意,常量指针必须初始化
cout << *p << endl;   //这里输出2
//p=&b;  //报错,常量指针指向不可变
a=123;
cout << *p << endl;   //这里输出2

在这里插入图片描述

指针常量——pointer to const

int const * p
变量名是p,向左看,先看到*,我们就知道p是个指针,然后再看到const,我们就知道p是个指针常量——指向常量的指针——pointer to const

同理,const int * p也是一个道理,p是个指针常量,分析方法同上

说白了指针常量误以为自己指向的是一个常量,但实际上指向的不一定是常量,指针常量用于指向常量,但不一定非得指向常量

	指向一个常量意味着指向的常量不可修改,也就是说指针的提领操作部分
	会受到限制,你只能提取指向的内存块中的值,而不能改动指向的
	内存块中的值
int a=1;
int b=2;

int const * p1=&a;
const int * p2=&a; //p1和p2指向的是同一块内存,两者的性质也是一样的

cout << "*p1=" << *p1 << "  " << "*p2=" << *p2 << endl;//输出a的值

*p1=213;//报错,因为编译器认为该指针指向的是一个常量,不能修改一个常量的值

//可以换指向
p1=&b;
cout << "换完指向后*p=" << *p1 << endl;//输出b的值


在这里插入图片描述

注意看两次报错的内容,一次是read-only p另一次是read-only *p,这也就是两者的区别,一种是指针自身就是一个常量,另一种是指针指向一个常量。

一个是不能换指向,但指向的值可以换——常量指针
一个是能换指向,但是当前指向的值不能改——指针常量

顶层const和底层const

最后补充一个知识点:顶层const指的是常量指针,指针自身是一个常量
底层const指的是指针指向一个常量,也就是指针常量。

结束~~~

PS:关注我,不迷路~~~

  C++知识库 最新文章
【C++】友元、嵌套类、异常、RTTI、类型转换
通讯录的思路与实现(C语言)
C++PrimerPlus 第七章 函数-C++的编程模块(
Problem C: 算法9-9~9-12:平衡二叉树的基本
MSVC C++ UTF-8编程
C++进阶 多态原理
简单string类c++实现
我的年度总结
【C语言】以深厚地基筑伟岸高楼-基础篇(六
c语言常见错误合集
上一篇文章      下一篇文章      查看所有文章
加:2022-01-30 18:45:28  更:2022-01-30 18:46:25 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 8:58:18-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码