入门c语言DAY6——常量

入门第6天.

昨天在学习过变量的生命周期与作用域后,今天再来继续学习一下常量的相关内容。

首先先来了解一下常量有哪些种类,再去一一解释。

一般来说,常量有这4种。

1.字面常量

2.const 修饰的常变量

3.# define 定义的标识符常量

4.枚举常量

 

首先,第一种字面常量。

字面常量,就是通过其表示就可以知道他的值与类型的常量。

比如数字20,20在这里就是一个字面常量,它的值是20,类型是整型。

再比如数字3.14,它的值是3.14,类型是浮点型。

还有字符常量和字符串常量。

非常容易理解,这也是最简单的一种常量。

 

第2种常量是const修饰的常变量。

举个例子。如图。71774282caca4e5f9b79b6e44207d0a3.jpg

 我先初始化变量a为10,再把20赋值给a,也就是改变了a的值。

这里的a是变量,可以被修改的,也是昨天所学的。

但如果我定义了a=10,却并不希望别人去修改它,那么这个时候就出现了常变量。也就是把变量限制死,使其不能被改变,也就成了常量。

但常变量的本质还是变量,只是它不能被修改。

达到这一目的我们要学习一个新的关键字:const

这个关键字放在变量前面,就可以使该变量不能被别人去改变。如图(上面是报错情况,底下是程序)

dc6f7efcd35040918f2412dec37df7a5.jpg

 这个报错程序翻译一下意思就是:

无法赋值给变量'a'具有const限定类型“const int”a=20

注意:变量'a'声明常量在这里常量int a=10;

意思就是这个变量a已经限定了,已经是一个长变量int a=10,不能再去更改为a=20。

这也就是const的用法。

 

下面来证明一下const修饰的这个常变量本质是变量。

先创建这样一个数组:int arr[10]={0},意思是创建了一个数组,这个数组可以存放十个整型。

联系到刚刚所学,那我们是否可以把10赋值给一个变量,再把这个变量放进方括号中?

系统报错。报错的原因就是这个表达式里必须得含有常量,而尽管变量a被赋值为10,但他的本质还是不一样。

44bd971dd4d7471a98852ff2b0d07e98.jpg

 如果这个时候利用常变量的知识在前面加上一个const,是不是它就可以使用了呢?

结果还是报错。这就可以证明了,尽管有const修饰,但常变量的本质还是变量,整个表达式仍然缺少常量,所以仍会报错。

 

第3种类型,# define 定义的标识符常量。

来举个例子。

407fa6a9d5c84f0f87ef4b456cbe2593.jpg

 这里便通过# define将MAX这个标识符定义为常量。

然而,# define定义的也可以不是整数,如下图所示。

d11a621a38894e76a2423a0569383bbf.jpg

 在这里,我将STR定义为xavze这个字符串,因此也可以将其打印出来。

(PS.打印字符串使用%s)

他其实和上面的const有一点点类似,都是限制为常量,后续无法再进行更改。

 

最后一种常量就是枚举常量。

举个例子,我们日常生活中有很多东西,其实都是可以靠枚举来把它表示出来的。

比如说三原色,也就是RGB,红绿蓝。

那我们怎么去枚举它呢?

来新学一点东西。enum,这是枚举的关键字,用它我们可以直接列举出全部可能的取值情况并表示出来。

而枚举类型定义的一般形式为:

enum 枚举名{ 枚举值表 };

在枚举值表中列出的所有的也称为枚举元素。

如下图中,Red,Green和Blue都是枚举元素,也叫枚举常量,所以他们是不可以赋值等再去进行更改的。

87dda7df8f044cf792e72e5424202e82.jpg

 且枚举元素本身由系统定义了一个表示序号的数值,从0开始顺序定义为0,1,2…

 

ok,以上就是今天学习的全部内容。

 

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值