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

news2024/12/22 18:19:31

王国探险记系列

文章目录(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的时候就会被替换成100
	int 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,//1
	BLUE  //2
};
//未来呢,假设我想表示一个颜色,我会怎么做呢?
int main()
{
	enum Color c =RED ;//可以用这个自定义类型创建一个c,
	//用这个c来表示什么样的颜色,而c的取值只有三种,RED,GREEN,BLUE,
	//你可以给c用这三种变量给它赋值
	return 0;
}

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

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

enum Sex//enum sxe是一个类型,枚举类型里面列出来的值叫枚举常量
{
	MALE,//男,它们的值都是默认的//0
	FEMALE,//女//1
	SECRET//保密//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.coloradmin.cn/o/686782.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

nginx部署多个前端项目

前端采用vue框架,主要介绍在同一个ipport下(或域名),通过访问不同的子路径部署多个项目 把前端打包好的项目直接放进 nginx/html 目录下面, 下面展示根据不同的路由模式的nginx配置👇 路由采用hash模式 浏…

基于深度学习YOLOv5电动车头盔佩戴检测设计毕业设计

wx供重浩:创享日记 对话框发送:625头盔 获取完整源码源文件标注好的数据集(在源码文件夹->yolov5-5.0->VOCdevkit)优秀论文答辩PPT及文稿等 设计总说明 在许多非机动车交通事故中,未佩戴头盔是造成驾驶人受伤或死亡的主要原因&#xf…

永磁电机中的磁钢

稀土永磁最大的应用领域就是永磁电机,电机俗称马达,广义上的电机包含了将电能转换成机械能的电动机,和将机械能转换成电能的发电机,不管是电动机还是发电机,都是利用电磁感应定律或电磁力定律作为基础原理的电气设备。…

【教学类-36-02】动物头饰制作(midjounery动物简笔画四图)

作品展示 (用midjounery动物简笔画四图作为头饰上的动物,正方形折纸的辅助黏贴物) 背景需求: 1、用midjounery生成简笔画动物图案(四张预览) 2、收集各种不同的动物的一张图片.png 3、设计一款中班幼儿用…

python spider 爬虫 之 解析 xpath 、jsonpath、BeautifulSoup (-)

Xpath 插件下载及安装 下载地址:https://chrome.zzzmh.cn/info/hgimnogjllphhhkhlmebbmlgjoejdpjl 安装xpath 如果下载的xpath后缀是crx 格式的, 直接改成zip格式,然后直接拖拽到上面的界面中便可, 查看是否安装成功&#xff0c…

DOM操作——获取元素的方式

关注“大前端私房菜”微信公众号,回复暗号【面试宝典】即可免费领取107页前端面试题。 DOM-文档对象模型 DOM(Document Object Model):文档对象模型 其实就是操作 html 中的标签的一些能力,或者说是一整套操作文档流的…

10年内打造量子超级计算机,行吗?

光子盒研究院 在未来十年内,微软打算建造一台量子超级计算机。 本周四,微软制定了一个开发自己的量子超级计算机的战略蓝图。设计它的团队将花费至少10年的研究时间,来建造一台能够每秒进行一百万次可靠量子操作的机器。 微软声称&#xff0c…

C++的access()函数

文章目录 函数功能头文件函数原型参数说明示例 函数功能 确定文件是否存在或者判断读写执行权限;确定文件夹是否存在即,检查某个文件的存取方式,比如说是只读方式、只写方式等。如果指定的存取方式有效,则函数返回0,否…

津津乐道设计模式 - 观察者模式详解(学会察言观色再也不怕女朋友生气了)

🌷 古之立大事者,不惟有超世之才,亦必有坚忍不拔之志 🎐 个人CSND主页——Micro麦可乐的博客 🐥《Docker实操教程》专栏以最新的Centos版本为基础进行Docker实操教程,入门到实战 🌺《RabbitMQ》…

Nginx 优化配置及详细注释~转

Nginx 优化配置及详细注释 转https://www.cnblogs.com/taiyonghai/p/5610112.html Nginx 的nginx.conf文件,是调优后的,具体影响已经写清楚注释,可以拿来用,有一些设置无效,我备注上了,不知道是不是版本的…

《kafka 核心技术与实战》课程学习笔记(七)

生产者压缩算法 怎么压缩? 压缩(compression)秉承了用时间去换空间的经典 trade-off 思想,具体来说就是用 CPU 时间去换磁盘空间或网络 I/O 传输量,希望以较小的 CPU 开销带来更少的磁盘占用或更少的网络 I/O 传输。…

初识mysql数据库之基础操作

目录 一、库的操作 1. 创建数据库 2. 数据库的编码集 2.1 数据库的编码问题 2.2 查看系统默认字符集和校验规则 2.3 创建数据库时指定字符集和校验集 2.4 校验规则对数据库的影响 3. 进入数据库 4. 确认自己当前所处的数据库 5. 修改数据库的编码集 6. 查看创建数据…

FPGA解码MIPI视频 OV5647 2line CSI2 720P分辨率采集 提供工程源码和技术支持

目录 1、前言2、Xilinx官方主推的MIPI解码方案3、本 MIPI CSI2 模块性能及其优越性4、我这里已有的 MIPI 编解码方案5、详细设计方案6、vivado工程介绍7、上板调试验证8、福利:工程代码的获取 1、前言 FPGA图像采集领域目前协议最复杂、技术难度最高的应该就是MIPI…

现代民机“飞行管理系统(FMS)”的功能和组成

01 什么是 “飞行管理系统”? 飞行管理系统(FMS, Flight Management System),中文简称 “飞管”,是飞机航电系统的重要一员。 FMS 自 20 世纪 70 年代诞生以来,目前已有了跨越式发展。它作为航电关键系统&…

100种思维模型之质量控制理论思维模型-83

质量控制理论思维模型,又叫做戴明环思维模型,即PDCA循环思维模型。 在上世纪50年代,日本的商品和今天中国的商品一样,都是低质低价的代表,后来日本引入了戴明博士的质量控制理论,即PDCA循环理论&#xff0…

浅谈无线测温系统在高压开关柜中的应用

关注acrelzxz,了解更多详情 摘要:高压开关柜是配电系统中重要的组成部分,其主要作用是控制电荷、分配电能和开断电流等,对维持系统的稳定性有一定的保障作用。将无线测温技术应用于高压开关柜,可以实现对其进行实时的…

汽车芯片,竞逐新周期

在过去几年,SoC几乎成了智能汽车行业皇冠上的明珠。汽车芯片从通用型、分散化的单一功能芯片(MCU)快速转向集成化的多功能SoC(System on Chip)芯片。 比如,在智能座舱领域,CPU算力用于提高任务处…

国产chatgpt:基于chatGLM微调nlp分类任务

文章目录 一、源码网址1. 硬件设施:2. INT4 量化示例 二、重要的开源社区功能:网址:使用方法:利用方法:对 NLP 工作者的作用:对大模型工程师的用处: 三、重要的开源库四、提示词工程五、进行分类…

优思学院|精益生产管理七大要素

精益生产是一种有效的管理方法,通过优化生产流程和资源利用,帮助企业提高效率、降低成本,并最大程度地满足客户需求。在精益生产中,有七个关键的管理要素,它们分别是人员、资金、方法、机器设备、物料、市场及士气。 1…

避坑指南!一文帮您解决Jmeter录制chrome操作过程中遇到的问题!

Jmeter录制脚本原理 脚本录制时,Jmeter作为代理网关,通过监听某个端口,来捕获监听端口的报文信息,对抓取到的请求信息和响应信息进行转换为对应的行为函数。我们这里以设置chrome代理为例,然后使用jmeter进行脚本录制…