博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
c++中指针常量,常指针,指向常量的常指针区分
阅读量:5934 次
发布时间:2019-06-19

本文共 1113 字,大约阅读时间需要 3 分钟。

const char * myPtr = &char_A;//指向常量的指针

char * const myPtr = &char_A;//常量的指针
const char * const myPtr = &char_A;//指向常量的常量指针

1.指针常量

**从字面意思可以看出,指针是一个常量,也就是地址不能被修改

#include 
using namespace std;void main(){ int a = 10; int const *p = &a; cout<
<

我们可以改变指针变量p所指向的内容,而不能改变p的地址空间,如 添加上p = &b;我们就会发现编译错误!

2.指向常量的指针

特点是指针所保存的地址可以改变,然而指针所指向的值却不可以改变。

int const p,比较好记的方法:把 读作pointer to然后从后往前读.
p is a pointer to const int,p是指向常量的指针

#include
#include
using namespace std;void main(){ int i1=30; int i2=40; const int * pi=&i1; printf("%d\n", *pi ) ; //输出是30 pi=&i2; //注意这里,pi可以在任意时候重新赋值一个新内存地址 i2=80; //想想看:这里能用*pi=80;来代替吗?当然不能 printf("%d\n", *pi ) ; //输出是80 system("pause");}

3 指向常量的常指针

特点是指针所保存的地址不可变,指针所指向的数值也不可变

**const int const*p

典型例子

①int x=3; const int &y=x;//x=10;正确//y=20;错误,不能改变y的值
②const int x=3;x=5;错误
③int x=3; const int y=x;y=5;错误
④int x=3;const int *y=&x;*y=5;错误
⑤int x=3,z=4;int *const y=&x;y=&z;错误
⑥const int x=3; const int &y=x;y=5;错误
⑦int const a = 3; int p = &a;错误//指针指向const修饰的变量时,应该是const int const *p = &a;***

转载地址:http://bdntx.baihongyu.com/

你可能感兴趣的文章
iptables 无法连外网
查看>>
jenkins集成ansible注意事项Failed to connect to the host via ssh.
查看>>
2016第33周四
查看>>
iOS开发UI篇—Quartz2D使用(信纸条纹)
查看>>
EL表达式经典用法
查看>>
【转】Flume日志收集
查看>>
转:Log4j使用
查看>>
CSS3 box-sizing 属性
查看>>
【转】java-String中的 intern()
查看>>
用户登录系统之后,禁止用户返回到登录页面
查看>>
java.lang.NoClassDefFoundError: javax/mail/Authenticator
查看>>
数据库多对多型数据表分类设计
查看>>
深入Activity,Activity启动模式LaunchMode完全解析
查看>>
黄聪:iis7.5 偶尔出现500服务器错误-内部服力器错误
查看>>
CSS3与页面布局学习总结
查看>>
驱动的境界
查看>>
sql 转 markdown
查看>>
Noise,Error,wighted pocket Algorithm
查看>>
hive内部表、外部表、分区表、视图
查看>>
人工智能--学术会议排名
查看>>