C语言王国探险记之常量的四大护卫

news/2025/2/10 23:43:21/

王国探险记系列

文章目录(3)


前言

一、常量是什么?

二、常量的第一护卫:字面常量

1.什么是字面常量?

三、常量的第二护卫:const修饰的常变量

1.什么是const修饰的常变量?

2,证明const修饰的常变量仍然是一个变量只不过是拥有常属性

​编辑

四、常量的第三护卫:#define定义的标识符常量

1.什么是#define定义的标识符常量?

五、常量的第四护卫:枚举常量

1.什么是枚举常量?

总结


前言

C语言王国探险记,是我们学习C语言,从小白成长为大佬的的探险历程,我们在这章将探险常量这个知识关卡


一、常量是什么?

生活中有一些值是不变的(比如:圆周率,性别,身份证号码,血型等等)

在c语言中将那些不变的量使用常量来表示

二、常量的第一护卫:字面常量

1.什么是字面常量?

直接写出的字面值,这些数值都叫做字面常量

举例理解:

100

20.0

3.14

‘a’

这些数字和字符都是我们所说的字面常量

三、常量的第二护卫:const修饰的常变量

1.什么是const修饰的常变量?

const 就是常属性的意思,可以修饰变量

常量的这个常表示的是它是一个不会变化的值

变量是可变的,长又是不变,不是很矛盾吗?

理解:就和监狱中犯了法的人一样,在监狱里面,他们还是中华人民共和国的一个公民,
他还是有这样一个人民的属性的,但是因为他犯法了,我们把他关起来了,他就具有了另外一层属性,他被限制了自由

接下来让我们用具体实例直接在代码加注释,以及结果运行图理解:

int main()
{//就和监狱中犯了法的人一样,在监狱里面,他们还是中华人民共和国的一个公民,//他还是有这样一个人民的属性的,但是因为他犯法了,我们把他关起来了,//他就具有了另外一层属性,他被限制了自由const int a = 10;//现在在int a前加一个const ,a本来里面放的是10//我们把a叫做const修饰的常变量//const修饰a的时候也是限制了a的自由,让a不能在被改了,但是他本质上还是一个变量printf("a=%d\n", a);a = 100;//当我们再次把a修改为100的时候就会报错,这个错误是啥意思呢,//就是当你去修改这个a的时候,抱歉a不能修改//const修饰a的时候让a具有了常属性,但是本质上a还是一个变量,//只不过是被const从语法上加了一个限制,让它不能在被改了//const放在那就是告诉你a的值放在那,你以后不要在改了//const就是在语法层面上加一个限定,说一旦一个变量被const修饰之后,你就不能去改它,//你如果去改它就是违背规则printf("a=%d\n", a);return 0;
}

2,证明const修饰的常变量仍然是一个变量只不过是拥有常属性

接下来让我们用具体实例直接在代码加注释,以及结果运行图理解:

//C语言里面一个叫数组,先看懂就行
int main()
{//我们在创建数组的时候需要指定数字大小//比如说,我们创建个数组叫arr大小给个10//数组在创建的时候要求arr的大小是一个常量int arr[10] = {0};//这个10就在告诉我,数组是10元素的,数组里面可以放10个值的//int n = 10;//我们刚刚使用n,n是个变量不行,const int n = 10;//当我们加一个const呢,还是不行,会报错,//所以现在n即便是被const修饰了还是不行,因为它还是一个常变量,//它是具有一定常属性的变量,它本质上是一个变量,所以不能放在这里int arr2[n] = { 0 };//当我们去编译的时候,它就报错,它提醒你表达式必须含有常量值,//也就是说你只能拿常量来指定arr的大小//在c++中把const修饰的n当常量来处理的,这是c和c++在这个语法细节上的差异return 0;//他是个常变量,他本身具有常数的属性,但是他还是一个变量
}

四、常量的第三护卫:#define定义的标识符常量

1.什么是#define定义的标识符常量?

格式:#define 名称  赋值

#define M 100   
我们定义一个M它的值是100,这个时候这个M就是我们定义出来的标识符常量

那这标识符常量算不算一个常量呢?算

M作为它的数组个数行不行呢,当然可以,因为此时此刻的M就是一个常量它是一个标识符常量

接下来让我们用具体实例直接在代码加注释,以及结果运行图理解:

#define M 100
我们定义一个M它的值是100,这个时候这个M就是我们定义出来的标识符常量
int main()
{int arr[M] = { 0 };//M作为它的数组个数行不行呢,当然可以,//因为此时此刻的M就是一个常量它是一个标识符常量//这就是我们定义的一个标识符常量//你以后在使用M的时候M的值就是100//那我们怎么用呢//我们能不能把这个M的值打印出来呢printf("标识符常量M-->%d\n",M);//当这个地方出现M的时候就会被替换成100int a = M;//这个地方有个a,我们将M的值赋予给a,你在这里在打印a都是没有问题的printf("标识符常量M被赋予给a后的a值-->%d\n", a);return 0;
}

 

五、常量的第四护卫:枚举常量

1.什么是枚举常量?

什么叫枚举常量.
枚举常量就是一一列举嘛?
我们生活中有一些东西是可以被一一列举的
有一些数据的取值可以被一一列举
比如说:三原色:红色,绿色,蓝色
性别:男.女,保密
星期:1 2 3 4 5 6 7
通过这些例子,我们可以知道,我们生活中的有些值是可以被一一列举出来的
C语言里面就给出了一个叫枚举类型
可以把这些可能的值一一列举出来
枚举关键字:enum

接下来让我们用具体实例直接在代码加注释,帮助理解:

//这就是我们创造的自定义的一个类型叫枚举类型叫 enum Color,
//这个颜色的取值只有三种放在下面的大括号里面
enum Color //定义颜色的这样一个类型
{//枚举类型里面列出来的值叫枚举常量//就是这个枚举类型可能的取值就是这三种,所以我可以将她一一列举出来RED,  //第一个常量是0,默认从0开始依次递增的GREEN,//1BLUE  //2
};
//未来呢,假设我想表示一个颜色,我会怎么做呢?
int main()
{enum Color c =RED ;//可以用这个自定义类型创建一个c,//用这个c来表示什么样的颜色,而c的取值只有三种,RED,GREEN,BLUE,//你可以给c用这三种变量给它赋值return 0;
}

在举例打印枚举常量的默认的值

接下来让我们用具体实例直接在代码加注释,以及结果运行图理解:

enum Sex//enum sxe是一个类型,枚举类型里面列出来的值叫枚举常量
{MALE,//男,它们的值都是默认的//0FEMALE,//女//1SECRET//保密//2
};
int main()
{//但你想要表示一个性别的时候怎么用呢,//当你给一个人赋予性别的时候//enum Sex s = SECRET;//可以给小s赋值了//enum Sex s2 = MALE;printf("%d\n", MALE);//我们可以打印一下看一下printf("%d\n", FEMALE); printf("%d\n", SECRET); return 0;
}


 

总结

以上就是今天要讲的内容,本文仅仅简单介绍了常量的基本概念及常量的四大类型,可以让你在c语言王国的探险更加有趣,充实。


http://www.ppmy.cn/news/584430.html

相关文章

golang的interface

Golang的interface类型介绍 什么是Golang的interface类型? 在Golang中,interface(接口)是一种类型,用于定义对象的行为规范。它定义了一组方法的集合,而无需指定具体的实现细节。接口允许我们将不同的类型视…

Android 使用webView打开网页可以实现自动播放音频

使用webview 自动播放音视频,场景如,流媒体自动部分,音视频通话等。会出现如下问题: 解决方案如下: 配置webview 如下,这样可以自动播放音频。 webView.getSettings().setMediaPlaybackRequiresUserGestur…

Linux守护进程详解、范例演示 ( 6 ) -【Linux通信架构系列 】

系列文章目录 C技能系列 Linux通信架构系列 C高性能优化编程系列 深入理解软件架构设计系列 高级C并发线程编程 期待你的关注哦!!! 现在的一切都是为将来的梦想编织翅膀,让梦想在现实中展翅高飞。 Now everything is for the…

为什么电脑默认硬盘是“C”盘?C盘文件能恢复吗?

为什么电脑默认硬盘是“C”盘?对计算机用户而言,对电脑C盘是再熟悉不过了,不少软件在装机时也是默认存储在C盘中的,这样可以提升客户端的流畅度,但随着使用频次的增加,会有大量的数据,如视频、图…

【WIN10安装】纯净版安装如何只格式化C盘,其他盘符数据仍然保留

待更 参考 【WIN10安装】拒绝第三方软件,纯净官网系统,U盘安装教程

电脑C盘满了怎么办?教你几招轻松搞定

电脑老是死机,你看过你的C盘吗?好像下载的软件不多,但是C盘的容量已经快用完了。 这可能是因为你很少清理C盘。这里有5个方法正确清理电脑,瞬间多出30G空间! 方法一:清除磁盘空间 在【本电脑】中找到C盘&am…

c盘怎么分区?

怎样将c盘分区?部分电脑用户遇到过这种问题,电脑只有一个c盘,数据资料无法分盘存储,管理文件不方便不说,万一需要重装系统,备份数据又是一件麻烦事。那么怎样才能将c盘的部分空间释放出来重新分区呢&#x…

计算机格式化命令符号,格式化c盘命令是什么 格式化c盘会怎么样【图文】

对于很多电脑使用者来说,对c盘这个名称并不陌生,不仅很多软件会默认储存在c盘,而且c盘里面都是电脑重要的启动系统,可想而知c盘在电脑里面的重要性了。随着电脑的使用的次数变多,人们对于一些电脑问题也就越发疑惑了。…