博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
关于c++中const的基本用法
阅读量:5226 次
发布时间:2019-06-14

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

c++中的const 有点类似于c里的宏定义#define,但是似乎是在宏定义基础上的代码优化,具体我解释不清,下面主要提到的是

const 在c++中的3中基本用法:

1.指向常量的指针

例如:const char*  pc=“sada";

含义:声明一个名为pc的指针变量,它指向一个字符型常量,初始化pc为指向字符串"sada";

由于指针指向的是一个字符型常量,const不允许改变指针指向的字符型常量,故

例如

p[2]='s';是错误的,但是却可以改变pc所指的地址

pc=“asdas”;

正确;

2.对于和指向常量的指针截然不同的是常指针,

常指针具体在例子中体现,

例如:char* const pc="asd";

这种定义方式是错误的;

经过实际操作可知,必须定义变量,如果是常量将无法进行修改。

会报warning

因为此时的pc是常量,

应采用此种定义方式

char a[]="sadd";

char* const pc=a;

含义

把指针变量所指的地址,而不是它指向的对象声明为常量。

可以改变地址中的数据,但是不能改变指针指向的地址

即pc[2]='x';正确

pc=”sdaasdas";错误;

3.是前两者的结合版

指向常量的常指针;

const char* const pc="ada"

这种用法是地址中的数据及地址都不能修改;

更多详细解析请参考  

转载于:https://www.cnblogs.com/Staceyacm/p/10782123.html

你可能感兴趣的文章
layui父页面执行子页面方法
查看>>
如何破解域管理员密码
查看>>
Windows Server 2008 R2忘记管理员密码后的解决方法
查看>>
IE11兼容IE8的设置
查看>>
windows server 2008 R2 怎么集成USB3.0驱动
查看>>
Foxmail:导入联系人
查看>>
vue:axios二次封装,接口统一存放
查看>>
vue中router与route的区别
查看>>
js 时间对象方法
查看>>
网络请求返回HTTP状态码(404,400,500)
查看>>
Spring的JdbcTemplate、NamedParameterJdbcTemplate、SimpleJdbcTemplate
查看>>
Mac下使用crontab来实现定时任务
查看>>
303. Range Sum Query - Immutable
查看>>
图片加载失败显示默认图片占位符
查看>>
【★】浅谈计算机与随机数
查看>>
《代码阅读方法与实现》阅读笔记一
查看>>
解决 sublime text3 运行python文件无法input的问题
查看>>
javascript面相对象编程,封装与继承
查看>>
Atlas命名空间Sys.Data下控件介绍——DataColumn,DataRow和DataTable
查看>>
Java中正则表达式的使用
查看>>