C++关键字const
2022/1/6 12:03:23
本文主要是介绍C++关键字const,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
被const关键字修饰的变量类型的值都不可改
对于int,double,char等基础类型举例
const int i = 3;//i在初始化后,其值不可改变 i = 4;//错误 const double d = 3.3;//d在初始化后,其值不可改变 d = 4.4;//错误 const char c = 'a';//a在初始化后,其值不可改变 a = 'A';//错误
对于指针举例:
1. const在*左边,修饰的是基础类型
2. const在*右边,修饰的是指针
int i = 0; const int* cp = &i; //const在*左边,所以修饰的是基础类型int, //意思是指向的变量的值不可以改。 //仅是不能通过指针cp解引用更改,如果该变量没有const修饰,可以通过本身修改(如 i = 1;) int const * cp = &i; //const在*左边,所以修饰的是基础类型int, int* const pc = &i; //const在*右边,所以修饰的是指针 //意思是,指针pc不能再指向别的变量了。
对于引用而言,因为引用自身就包含了一层const的含义(不能改变指向),所以const修饰引用,只会让引用不能改变指向的值。
int i = 0; const int& p = i; //不能通过p更改i的值 int const& p = i; //不能通过p更改i的值 int& p const = i; //错误,不合语法
对于数组而言,只能修饰数组里面的元素或者元素指向的值。
int a = 0, b = 1, c = 2; const int p[] = {a, b, c}; //指的是数组中元素的值不可改,如(p[1],p[2]) int const p[] = {a, b, c}; //指的是数组中元素的值不可改 const int* p[] = {&a, &b, &c}; //const修饰的是int int const* p[] = {&a, &b, &c}; //const修饰的是int int* const p[] = {&a, &b, &c}; //const修饰的是指针 int p[] const = {a, b, c}; //错误,把const放在[]后面是错误的,不合语法
const修饰结构体,意味着,结构体内部成员值不可改。
#include <iostream> struct data { int i; int* p; }; int main(void) { int s = 0, t = 1; const data d = {1, &s}; d.i = 1; //错误,i的值不可改 d.p = &t; //错误,指针p的指向不可改 *(d.p) = 2; //正确 return 0; }值得注意的是,如果结构体里面有指针,那么const修饰的是指针本身,也就是说指针的指向不能更改
这篇关于C++关键字const的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-12-23DevExpress 怎么实现右键菜单(Context Menu)显示中文?-icode9专业技术文章分享
- 2024-12-22怎么通过控制台去看我的页面渲染的内容在哪个文件中呢-icode9专业技术文章分享
- 2024-12-22el-tabs 组件只被引用了一次,但有时会渲染两次是什么原因?-icode9专业技术文章分享
- 2024-12-22wordpress有哪些好的安全插件?-icode9专业技术文章分享
- 2024-12-22wordpress如何查看系统有哪些cron任务?-icode9专业技术文章分享
- 2024-12-21Svg Sprite Icon教程:轻松入门与应用指南
- 2024-12-20Excel数据导出实战:新手必学的简单教程
- 2024-12-20RBAC的权限实战:新手入门教程
- 2024-12-20Svg Sprite Icon实战:从入门到上手的全面指南
- 2024-12-20LCD1602显示模块详解