指针常量
顾名思义 这是一个指针类型的常量!常量的特点就是不可改变,所以被指针指向的常量地址也是不可以变的。
可以看到我们在定义并初始化一个指针常量之后,再次修改它的指向是不被允许的,但是它指向地址的值是可以改变的
常量指针
本质上是一个指针,常量表示指针指向的内容 比如整型指针 字符指针 等等
常量指针指向的内容是不可改变的,指向地址是可变的。
大家去实操一下就知道区别了。不用钻牛角尖
代码辨析
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.也可以把指针常量改成常量指针(可以修改指针指向 不能修改地址的内容)
#include<stdio.h>
int main()
{
const char* p = "apple";//创建一个常量指针
p = "orange";
printf("%s\n", p);
}
网站标题:CV鼻祖洋芋
原创文章,作者:locus,如若转载,请注明出处:https://blog.cvpotato.cn/forward-code/c-2/110/
本博客所发布的内容,部分为原创文章,转载注明来源,网络转载文章如有侵权请联系站长!