小白专场之区分指针常量和常量指针

本文针对小白介绍如何区分C++中的const int *p、int const *p和int *const p。文章通过实例解释了常量指针和指针常量的概念,强调了const关键字的位置决定了它修饰的是指针还是指针所指的对象。常量指针不可改变所指对象的值,但指针本身可改变;而指针常量则指针地址不可变,但其指向的值可变。
摘要由CSDN通过智能技术生成

这篇文章以 int 为实例。而且仅供小白理解。

你是否有这样的烦恼,一直分不清const int *p  ; int const *p  ; int *const p ;    有的人不知道它代表什么,更有的人连顺序都分不清。这里分享一下个人的理解,仅供助记,可能存在一些表述问题。

一 首先是常量指针,先看看常量指针的定义:常量指针本质是指针,常量修饰它,表示这个指针是一个指向常量的指针(变量)。指针指向的对象是常量,那么这个对象不能被更改。很明显,常量指针就是指针,那么我们指针是怎么定义一个指针的:int *p ;或者char *p ;  简单来说就是 数据类型 *  变量名 ;   所以常量指针的指针部分必定是 int *p ,那么常量应该怎么体现呢,采用const修饰一个变量就行了,const放在int的前面和后面修饰都行,即 const int *p  ; int const *p 是 常量指针。常量(const)指针(*),记得const 在 * 前面,最终结果是指针就行了。

下面看哪些可以修改哪些不能修改,很显然,常量指针指向一个常量,且常量是不能修改的,我们平时都是通过解引用得到p指向的值,所以*p的值是不可以修改的,既然常量指针是一个指针,指针当然可以指向其他位置。

    int test1 = 1;
	int test2 = 2;
	const int *p;
	
	p = &test1;
	p = &test2; //
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值