const限定的是谁
来源:互联网 发布:mac os x u盘重装系统 编辑:程序博客网 时间:2024/04/27 23:34
为毛要有const这么恶心的东西
因为C中常用“ #define 变量名 变量值”定义一个值替代,然而却有个致命缺点:缺乏类型检测机制, 这样预处理在C++中成为可能引发错误的隐患,于是引入const。
const与define。两者都可以用来定义常量,但是const定义时,定义了常量的类型,所以更精确一些。#define只是简单的文本替换,除了可以定义常量外,还可以用来定义一些简单的函数。const和define定义的常量可以放在头文件里面。
======================================================================================================================================
想知道它到底修饰谁,只要记住一句话 const是一个左结合的类型修饰符!
int const *A; //A可变,*A不可变,const左结合的是int这个类型,所以这个类型的变量不能变,而指向它的指针可以变
int *const A; //A不可变,*A可变,const左结合的是int *,声明的是一个int的指针,所以这个指针不能变,而指针指向的内容可以变
那就明白了:
int me;
const int* p1 = &me;//p1可变,*p1不可变,此时不能用*p1来修改,但是p1可以转向
int* const p2 = &me;//p2不可变,*p2可变,此时允许*p2来修改其值,但是p2不能转向。
const int* const p3 = &me;//p3不可变,*p3也不可变,此时既不能用*p3来修改其值,也不能转向
对于第一个,const左结合没有人啊,但是const越过*了吗,没有,所以const int* p1和int const * p1是一样的。
看不懂可以这样记:
const在*左边,指针能变,指向的内容不能变【因为const在*左边,const怎么也左结合不了*,所以限定不了指针啊】
const在*右边,指针不能变,指向的内容能变
const在*左右都有,都不能变。
- const限定的是谁
- const 修饰的是谁
- const修饰的是谁
- const限定符的使用
- const限定符的讨论
- const限定符的使用
- const限定符的作用
- 改变const限定的“常量”
- const限定符的理解
- 类的const限定符
- const 限定
- const限定
- 用 const 限定类的成员函数
- 用 const 限定类的成员函数
- 用const 限定类的成员函数
- C++ const 限定符 指针的使用方法
- const限定类的成员函数
- 关于const 限定符的一些概念
- 关于唯一设备标记的相关链接
- Spring事务管理(三)使用tx标签
- yii2 redis 常用命令
- CNN数学公式、Caffe框架简要
- C++连接ORacle数据库
- const限定的是谁
- Leetcode 213 House Robber II
- 在Eclipse下配置《算法》(第4版)的运行环境
- springboot 配置资源统一管理
- 北邮OJ-105. 寻找宝藏-11计院上机C
- ssis 中update then insert
- 使用Oracle SQL Developer迁移MySQL至Oracle数据库
- 【design pattern】行为型模式之—迭代器模式(Iterator)
- 2017 TSC·世界大脑与科技峰会四大主题介绍