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

指针常量

指针常量:顾名思义它就是一个常量,但是是指针修饰的。

格式为:

cpp 复制代码
int * const p //指针常量

在这个例子下定义以下代码:

cpp 复制代码
int a,b;
int * const p=&a //指针常量
//那么分为一下两种操作
*p=9;//操作成功
p=&b;//操作错误

因为声明了指针常量,说明指针变量不允许修改。如同次指针指向一个地址该地址不能被修改,但是该地址里的内容可以被修改。

常量指针

常量指针:如果在定义指针变量的时候,数据类型前用const修饰,被定义的指针变量就是指向常量的指针变量,指向常量的指针变量称为常量指针,格式如下:

cpp 复制代码
const int *p = &a; //常量指针
或 int const* p = &a;

在这个例子下定义以下代码:

cpp 复制代码
int a,b;
 const int *p=&a //常量指针
//那么分为一下两种操作
*p=9;//操作错误
p=&b;//操作成功

因为常量指针本质是指针,并且这个指针是一个指向常量的指针,指针指向的变量的值不可通过该指针修改,但是指针指向的值可以改变。

判断限制域的时候,const总是修饰其左侧标识符,如果const位于最左侧则修饰其右侧标识符

指向常量的指针常量该怎么写?

cpp 复制代码
const int * const b = &a;//指向常量的指针常量

参考:

[1]http://t.csdnimg.cn/g3K8u

[2]https://zhuanlan.zhihu.com/p/337321951

相关推荐
奋斗的小花生2 小时前
c++ 多态性
开发语言·c++
闲晨2 小时前
C++ 继承:代码传承的魔法棒,开启奇幻编程之旅
java·c语言·开发语言·c++·经验分享
UestcXiye3 小时前
《TCP/IP网络编程》学习笔记 | Chapter 3:地址族与数据序列
c++·计算机网络·ip·tcp
霁月风5 小时前
设计模式——适配器模式
c++·适配器模式
jrrz08285 小时前
LeetCode 热题100(七)【链表】(1)
数据结构·c++·算法·leetcode·链表
咖啡里的茶i5 小时前
Vehicle友元Date多态Sedan和Truck
c++
海绵波波1075 小时前
Webserver(4.9)本地套接字的通信
c++
@小博的博客5 小时前
C++初阶学习第十弹——深入讲解vector的迭代器失效
数据结构·c++·学习
爱吃喵的鲤鱼6 小时前
linux进程的状态之环境变量
linux·运维·服务器·开发语言·c++
7年老菜鸡7 小时前
策略模式(C++)三分钟读懂
c++·qt·策略模式