前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >指针常量和常量指针

指针常量和常量指针

作者头像
用户7272142
发布2023-10-11 21:01:52
1270
发布2023-10-11 21:01:52
举报
文章被收录于专栏:Republic博客Republic博客

指针常量

顾名思义 这是一个指针类型的常量!常量的特点就是不可改变,所以被指针指向的常量地址也是不可以变的。

image.png
image.png

可以看到我们在定义并初始化一个指针常量之后,再次修改它的指向是不被允许的,但是它指向地址的值是可以改变的

常量指针

本质上是一个指针,常量表示指针指向的内容 比如整型指针 字符指针 等等 常量指针指向的内容是不可改变的,指向地址是可变的。

image.png
image.png

大家去实操一下就知道区别了。不用钻牛角尖

代码辨析

代码语言:javascript
复制
int main()
{
char*const str = "apple";
*str = "orange";
cout<<str<<endl;
getchar();
}

首先str是一个指针常量 常量指针的特点就是指向的地址不能变化 str目前的指向的是字符串常量 apple的首地址 即'a'的地址 *a就表示字符'a' 那我们能修改吗,答案是不能 因为apple是常量 之前我们在字符串也阐述过 这里不再赘述 那我们是否能修改指针指向 改变字符串的内容 str = "orange"; 答案也是不能 orange也存放在常量区 他在常量区的地址也就是字符串的首地址 但是str是指针常量 不可以修改。 1.如果想要实现修改str,首先要去掉指针常量 使他可以修改指向的地址 然后就可以指向常量区新的内存地址 2.也可以把指针常量改成常量指针(可以修改指针指向 不能修改地址的内容)

代码语言:javascript
复制
#include<stdio.h>
int main()
{
    const char*  p = "apple";//创建一个常量指针
    p = "orange";
    printf("%s\n", p);

}
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2023-07-08,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 指针常量
  • 常量指针
  • 代码辨析
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档