const修饰的指针(常量指针,指针常量)

1.const修饰指针 常量指针

下面结合代码进行详解

int a=10;
int b=10;
int *p=&a;//此时指针指向a;
const int *p=&a;

现在我们在最前面加了一个const ,我们可以按顺序记忆 ,首先const是常量 ,后面是指针 ,所以就叫常量指针;
特点:指针的指向可以修改 ,但是指针指向的值不可以改

示例

int a = 10;
int b = 20;
const int *p= &i;
*P=10;//error错误操作,指针指向的值不可以改 也就是不可以通过解引用给指针指向的变量赋值。
cout<< *p<<endl;
p = &b;//这就是对的,因为可以更改指针指向
cout<< *p<<endl;
return 0;

在这里插入图片描述

2.const修饰常量 指针常量

int a=10;
int b=10;
int *p=&a;//此时指针指向a;
int * const p=&a;

现在我们在p前面加了一个const ,我们可以按顺序记忆 ,首先最前面是int*代表指针,后面const是常量 ,所以就叫指针常量;
特点:指针的指向不可以修改 ,但是指针指向的值可以改
示例

*p=20//这是正确的
p=&b//错误,

其实我们常见的数组名就是指针常量 ,因为数组名就是数组首地址,数组首地址不可以改,但是第一个元素大小可以改变,这就是所谓的指针常量(指针在前,地址不变,对应着下面的总结方法)

3.总结记忆方法

1)指针和 const 谁在前先读谁 ;按顺序读
(2int*象征着地址,const象征着内容;
(3)谁在前面谁就不允许改变。const 在前面时称为常量指针,内容不可以改;int *在前面时叫指针常量,指针指向不可以改

(1)常量指针是指指向常量的指针,顾名思义,就是指针指向的是常量,即,它不能指向变量,它指向的内容不能被改变,不能通过指针来修改它指向的内容,但是指针自身不是常量,它自身的值可以改变,从而指向另一个常量。

(2)指针常量是指指针本身是常量。它指向的地址是不可改变的,但地址里的内容可以通过指针改变。它指向的地址将伴其一生,直到生命周期结束。有一点需要注意的是,指针常量在定义时必须同时赋初值。

4.const既修饰指针,又修饰常量

那就是指针的指向和指针指向的值都不可以改变

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值