高级语言中的关键字:const用法分析
发布日期:2021-06-30 21:33:32
浏览次数:3
分类:技术文章
本文共 1828 字,大约阅读时间需要 6 分钟。
const是constant的缩写,本意是“不变的、不易改变的”,它属于c、c++、Java等高级语言中的关键字,通常用来修饰变量对象、函数参数、c或c++指针对象使用。
const在实际编程中起着至关重要的作用,本文主要讲解它在编程中的不同含义。
章节预览:
章节内容:
1. 变量修饰
【例1】 int const a;
示例代码:
int const a = 5;
int b = a; //正确 b = 6; //正确 a = 6; //错误 const int *p = &a; //正确 *p = 6; //错误 p = 0; //正确示例分析:
- 定义一个int类型常量a,a的值为5;
- 定义一个int类型b,b初始化赋值为a;
- b赋值为6;
- a赋值出错,a的值不允许修改;
- 定义一个int类型常量指针p,并指向常量a的地址;
- p指向的内存赋值出错,a的值不允许修改;
- p地址赋空地址,a的地址不变。
示例概况:
- 定义(类型 + const + 对象)形式,必须初始化赋值;
- 对象在生命周期内不允许赋值,即对象值不允许修改;
示例相似情况:
- (int const a)、(const int a)都属于常量对象,所表达的含义相同。
2. 指针修饰
【例2】 const int *p;
示例代码:
const int *p;
int a = 5, b = 6; p = &a; //正确 *p = 6; //错误 p = &b; //正确 *p = 7; //错误示例分析:
- 定义一个常量int类型指针p;
- 定义一个int类型a,初始化赋值为5;
- 定义一个int类型b,初始化赋值为6;
- p地址赋变量a的地址;
- p指向的内存赋值出错,a的值不允许修改;
- p地址赋变量b的地址;
- p指向的内存赋值出错,b的值不允许修改;
示例概况:
- 定义(const + 类型 + *(*在定义处表示指针声明,*的数量表示指针的维数) + 对象)形式,允许不进行初始化赋值;
- 指针对象在生命周期内允许赋地址,即对象地址允许修改;
- 指针对象在生命周期内不允许赋值,即对象值不允许修改;
示例相似情况:
- (const int *p)、(int const *p) 、(const int const *p)都属于常量指针,所表达的含义相同。
【例3】 int * const p;
示例代码:
int a = 5, b = 6;
int * const p = &a; *p = 6; //正确 p = &b; //错误示例分析:
- 定义一个int类型a,初始化赋值为5;
- 定义一个int类型b,初始化赋值为6;
- 定义一个int类型指针常量p,并指向变量a的地址;
- p指向的内存赋值为6,即a的值为6;
- p地址赋变量b的地址出错,p的地址不允许修改;
示例概况:
- 定义(类型 + * + const + 对象)形式,必须初始化赋值;
- 指针对象在生命周期内允许赋值,即对象值允许修改;
- 指针对象在生命周期内不允许赋地址,即对象地址不允许修改;
示例相似情况:
- (int * const p)属于指针常量,只有这一种定义形式。
【例4】 const int * const p;
示例代码:
int a = 5, b = 6;
const int * const p = &a; *p = 6; //错误 p = &b; //错误示例分析:
- 定义一个int类型a,初始化赋值为5;
- 定义一个int类型b,初始化赋值为6;
- 定义一个常量int类型指针常量p,并指向变量a的地址;
- p指向的内存赋值出错,a的值不允许修改;
- p地址赋变量b的地址出错,p的地址不允许修改;
示例概况:
- 定义(const + 类型 + * + const + 对象)形式,必须初始化赋值;
- 指针对象在生命周期内不允许赋值,即对象值不允许修改;
- 指针对象在生命周期内不允许赋地址,即对象地址不允许修改;
示例相似情况:
- (const int * const p)、(int const * const p)、(const int const * const p) 都属于常量指针常量,所表达的含义相同。
本节概况:
- 指针常量:指针地址不允许修改,但指针指向的内存值允许修改;
- 常量指针:指针地址允许修改,但指针指向的内存值不允许修改;
- 常量指针常量:指针地址和指针指向的内存值都不允许修改。
转载地址:https://lkyof.blog.csdn.net/article/details/105877234 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
逛到本站,mark一下
[***.202.152.39]2024年04月27日 03时44分04秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
手把手教你--JAVA微信支付(H5支付)
2019-04-30
solr修改schema文件(solr修改配置文件)
2019-04-30
Bootstrap datetimepicker日期时间插件使用方法(日期时间选择器)
2019-04-30
字体图标库(Font Awesome)的使用--绝佳的图标字体库和CSS框架
2019-04-30
select下拉框分组展示插件的使用--(select-mania插件的使用)
2019-04-30
Java 8新特性之--lambda表达式的使用和应用
2019-04-30
Java Lambda表达式的应用--Stream API操作集合框架
2019-04-30
省市区三级联动插件Distpicker--前端实现地区三级联动
2019-04-30
solr的使用详解
2019-04-30
Myslq连接(JDBC)url属性的参数的设置
2019-04-30
关于Java继承,重载及运行的顺序的总结
2019-04-30
关于Spring MVC与前端的交互
2019-04-30
Mybatis逆向工程的使用
2019-04-30
关于Hibernate的优缺点
2019-04-30
常用的 Maven 命令
2019-04-30
常用的20个正则表达式
2019-04-30
数据结构之顺序表的实现
2019-04-30
数据结构之线性链表
2019-04-30
JQuery使用validate插件完成校验
2019-04-30