您的位置:首页 > 编程语言 > C语言/C++

常量和常变量(const)

2017-09-18 02:19 162 查看

常量

1. 字面常量/直接常量

数值型常量

整形常量:1 2 3

实型常量:1.1 2.2

字符型常量(单撇号之间)

普通字符型常量:’a’ ‘A’

转义字符常量:’\n’

字符串常量:”helloworld”

2. 符号常量

用一个符号名代表一个常量

#define PRICE 20


常变量const

【胡思乱想】:

int num = 10;

变量名是名

变量是变量值

变量名的使用:就是当初发明c/c++语言的人,创造的一种方便程序员读写内存单元的办法,而且以不同权限声明的变量名,就有不同的读写权限,一个内存单元,被多个变量名打开。默认情况下,也就是最常使用声出来的变量名具有读写的权限。这和文件IO是一个性质的东西,但是比文件IO更简单直接。

内存单元:寄存器

指针变量名打开的那个寄存器里放:带权地址

带权地址的那个寄存器里放:权限下的档案

变量名打开的那个寄存器里放:权限下的档案

const :谷歌翻译:常量

我理解为:只读的东西

插入一个思想:文件IO

变量名:我理解为问价描述符

内存单元:寄存器

下面为了直接,所以直接讨论变量名打开的内存单元

插入一种思想:铺路设置哨卡

我们平时声明紧接着定义一个变量,之后就开始拿声明的那个变量进行各种操作

其实,一块内存空间,被程序使用了以后,我们可以声明其他好多变量名来操作这块内存,或者通过指针操作这块内存。

于是就出现了引用,指针

但是我们在声明这些变量时,可以修饰一下变量,其实就是给变量设定权限,权限可大可小,变量之间互补干涉

const就是一个修饰符,只赋予变量读内存空间的权限,没有写内存空间的权限,这使用与各种数据类型,因为每种数据类型都是由变量名和内存单元组成

当我们给一块内存单元声明一个变量时,就相当于修了一条通向城堡的路,新声明就是铺新路,但是每条路互补交叉。

路都是要限速限重的,在每个路口都有哨卡

为了保护城堡,越往外,对路设的条件越苛刻,所以权限越“继承”越苛刻

普通变量不可以做为const变量的引用

int A= 10;

const int B = 10;

int &a = A;//正确

int &a = B;//错误

const变量可以作为普通变量的引用

int A = 10;

const int B = 10;

const int &a = A;//正确

const int &a = B;//正确

const 放置位置

*

插入一个思想:宇宙中的地球

内存单元:上帝眼中宇宙中完整的地球

指针(坐标):上帝分给各种外星人带有权限的地球坐标

现在各种外星人手里都有地球的坐标,都可以到达地球,但他们要严格按照权限来做事

指针变量内存单元:外星人手里的带权限的坐标

由于上帝要保护地球,所以告诉外星人的地球坐标都加上了不同的权限

地球 *p_a = &地球;//A类外星人拿到任意权限的地球坐标

const 地球 *p_b = &地球; //B类外星人拿到只能访问地球的坐标

指针值(*p)内存单元:每种外星人权限下的地球

再插入一种思想:学校公司

10:学校、公司

int a = 10;

int b = 10;

int c = 10;

const int A = 10;

学生abc都说自己去学校

食堂阿姨A说自己去公司

学校、公司指同一个地方

自己把地点定位的性质不同,那做的事情也不同
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  c++ c
相关文章推荐