C++_指针常量、常量指针、常量指针常量

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档


目的

提示:这里可以添加本文要记录的大概内容:

区分并明白指针常量、常量指针、常量指针常量


提示:以下是本篇文章正文内容,下面案例可供参考

1、指针常量 ——指针的值是个常量(数据类型* const p)

指针常量其实就是一个常量,因为在指针名前面加上了一个const,所以该常量无法被修改,但是该指针解引用后就可以被赋值修改了,用法如下:

#include<iostream>
using namespace std;

int main(){
    int a = 1;
	int b = 2;
	int* const p1 = &a;//p1的值不能改变,但是*p1值可以
	*p1 = b;
	cout << "a = " << *p1 << endl;
    return 0;
}

2、常量指针——指向常量的指针(const  数据类型*p,数据类型 const *p)

常量指针就是一个指针,常量指的是指针的所指内容,在指针前面加上一个const,就表示了该指针所指的的常量无法被修改,但是指针可以被修改,用法为:

int a=1;
int b=2;
const int* p2 = &a;//*p2的值不能被修改,但是p2可以
p2 = &b;
cout << "a=" << *p2 << endl;

3、常量指针常量——指针值和指针指向的值都是常量(const 数据类型* const p)

常量指针常量可以分为常量指针和指针常量的“和”,结合了上面两种,表示指针值和指针指向的常量都无法被修改,用法为:


int a=1;
const int* const p3 = &a;
//p3和*p3都无法被修改
cout << *p3 << endl;
cout << p3 << endl;

总结

将这三者总结成一张表:

指针常量数据类型* const p指针的值是个常量指针无法被赋值,指针解引用后有可以被赋值(p1的值不能改变,但是*p1值可以)
常量指针const 数据类型*  p  指向常量的指针指针解引用后无法被赋值,指针可以被赋值(*p2的值不能被修改,但是p2可以)
常量指针常量const 数据类型* const p指针值和指针指向的值都是常量指针和指针解引用后都无法被赋值(p3和*p3都无法被修改)

  • 10
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值