对const *与*的剖析

本文深入探讨了C++中三种不同类型的指针(普通指针、常量指针、只读指针)如何影响内存访问权限,并通过实例展示了它们在实际编程中的应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

文字少说,直接看代码:

#include <iostream>

void f1(char *p1)
{}
void f2(const char *p2)
{}
void f3(char * const p3)
{}
void main()
{
	char *p = “ABC”	;
      const char *pp = "ABC";
	f1(p);
	f2(p);
	f3(p);

	f1(pp);
	f2(pp);
	f3(pp);
}

分析:我们知道p是一个指向静态存储区的char型指针且通过p可以读写“ABC”内存,但pp也是指向"ABC"内存,但是被赋予通过该指针只能可读,所以当分别调用三个不同的函数其中f1是一个可读可写的指针,f2只读指针,f3常指针。所以当将p和pp分别赋予他们的时候将出现不同的结果。

结果:char *p可以赋给char *p1(废话嘛);

            char *p可以赋给const char *p2;但此时p2只能只读该区域

            char *p可以赋给char * const p3;p3虽然是常指针,但也可以可读可写该区域

           const char *pp 不可以赋给char *p1 和char * const p3;因为不能将只读的变为可读可写

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值