您当前的位置:首页 > 电脑百科 > 网络技术 > 网络技术

C语言5种必须要搞懂的常量

时间:2019-07-25 14:00:51  来源:  作者:

你知道什么是C语言的常量?

为什么它们是编程世界的重要组成部分?

实际上C编程中的常量只是一些固定的值,在整个程序运行过程中都不能改变。这些固定值也称为字面量。

本章将主要强常量和字面量之间的关键区别。

在我们开始之前,你必须了解C语言中的变量。

你了解C语言的常量吗?这5种常量必须要搞懂

现在,让我们通过考虑以下问题来认识常量和字面量在C编程语言中的重要性: 在某些情况下变量的值不会改变,比如说,近似等于3.14159的pi值是常量,它永远不会改变,这是一个普遍的事实。我们可能会遇到一些情况,在这些情况下,我们需要pi来进行数学计算。类似地,我们可以根据方便程度为多个变量分配常量。

 

1. C编程中的变量和常量

值得注意的是,变量在编程和数学中有不同的含义。变量只是一个我们可以存储在计算机内存中的值。我们可以在运行时轻松地更改它的值。与之相反,常量在整个程序运行过程中都不会改变它们的值。常量可以包含C语言中可用的任何数据类型。

 

2. 声明或定义常量

我们可以通过两种方式将C常量赋值给变量:

  1. 使用#define,一个预处理器指令:我们已经在预处理器中详细讨论了#define
  2. 使用关键字const:它类似于变量声明,只是我们应该在它之前添加关键字“const”。一旦我们声明了常量,就给它赋值是很重要的。

了解更多关于C语言的预处理程序,看看它是否有用?

下面是一个C语言的程序,它演示了当我们试图修改一个常量的值时会发生什么:

你了解C语言的常量吗?这5种常量必须要搞懂

输出:

你了解C语言的常量吗?这5种常量必须要搞懂

3. C语言中的常量和字面量

正如前面所讨论的,常量和字面量可以互换使用,但是这两者之间有一些细微的区

让我们考虑一个简单的例子来更好地理解它。

在印度,法定投票年龄是18岁。

因此,我们定义

const voting_age = 18;

在这里,18是一个字面量,一个表示自身字面意思的值,而常量可以被认为是一种数据类型,它可以代替字面量来增强代码的功能。

现在,我们希望打印信息,“你可以投票!”给年龄大于或等于18岁的人士。

因此,我们首先将用户的年龄作为输入,给出条件:

  •  
if (age >= voting_age)
{
printf(“ You are allowed to vote! ”);
}

这里,标识符voting_age是常量。

为了进一步阅读,你应该了解C语言中的数据类型。

 

4. C语言中常量的类型

在C语言中,根据数据类型的不同,有5种不同类型的常量:

你了解C语言的常量吗?这5种常量必须要搞懂

 

4.1 整型常量

顾名思义,整数常量是一个具有固定值的整数,也就是说,它不能具有像10、-8、2019这样的小数值。

比如:

const long float pi = 3.14159;

const signed int limit = 20;

我们可以使用U和L后缀的不同组合来分别表示无符号修饰语和长修饰语,但要记住只能同时用它们其中一个。

我们可以进一步将其分为三类,即:

  • 十进制数制常数:以10为基数。(0到9).例如,55 ,-20 ,1。在十进制数字系统中,不使用前缀。
  • 八进制数系统常数:基数为8。(0到7).例如,034 ,087 ,011。在八进制数系统中,0用作前缀。
  • 十六进制数制常数:以16为基数。(0到9,A到F)在十六进制数制中,用0x作为前缀。C语言提供了使用大写或小写字母表示十六进制数字的条件。

4.2 浮点或实数

我们使用浮点常量来表示数轴上的所有实数,包括所有的小数。我们可以用两种方式来表示:

  • 小数形式:包含小数点(.)是强制性的。比如2.0, 5.98 ,-7.23。
  • 指数形式:必须包含带符号的指数(e或E)。例如,万有引力常数G = 6.67 x 10-11表示为6.67e-11或6.67E-11。

 

4.3 字符常量

字符常量用于为字符分配固定值,包括字母和数字或用单引号(' ')括起来的特殊符号。

每个字符都与其特定的数值ASCII(美国信息交换标准代码)值相关联。

除了这些值之外,C语言中还有一个称为转义序列的集合。

例如,'+ ',' A ', ' d '。

4.4 字符串常量

字符串常量是由一对固定的双引号("")包围的一组字符。

例如,"DataFlair","Hello world!"

4.5 枚举常量

枚举常量是在C语言中用户自定义的数据类型,每个成员赋予一个整型常量。

例如,

enum rainbow = {Violet, Indigo, Blue, Green, Yellow, Orange, Red}

枚举常量rainbow的整数如下:

Violet:0

Indigo:1

Blue:2

Green:3

Yellow:4

Orange:5

Red:6

下面是一段C代码,阐述了一些常量的用法:

你了解C语言的常量吗?这5种常量必须要搞懂

 

屏幕上的代码:

你了解C语言的常量吗?这5种常量必须要搞懂

 

输出:

你了解C语言的常量吗?这5种常量必须要搞懂

 

5. 总结

在这篇教程中,我们讨论了C语言中变量和常量的区别。然后我们进一步细致的讨论了如何定义C语言中常量或字符,以及其他可用的常量类型。

看完之后你是否已经充分掌握了C语言的常量和字符的知识了呢?

 



Tags:C语言 常量   点击:()  评论:()
声明:本站部分内容及图片来自互联网,转载是出于传递更多信息之目的,内容观点仅代表作者本人,如有任何标注错误或版权侵犯请与我们联系(Email:2595517585@qq.com),我们将及时更正、删除,谢谢。
▌相关推荐
你知道什么是C语言的常量?为什么它们是编程世界的重要组成部分?实际上C编程中的常量只是一些固定的值,在整个程序运行过程中都不能改变。这些固定值也称为字面量。本章将主要强...【详细内容】
2019-07-25  Tags: C语言 常量  点击:(763)  评论:(0)  加入收藏
▌简易百科推荐
写一个shell获取本机ip地址、网关地址以及dns信息。经常会遇到取本机ip、网关、dns地址,windows一个命令ipconfig /all全部获取到,但linux系统却并非如此。linux系统都自带ifc...【详细内容】
2021-12-27  K佬食古    Tags:shell   点击:(2)  评论:(0)  加入收藏
步骤1、配置 /etc/sysconfig/network-scripts/ifcfg-eth0 里的文件。it动力的CentOS下的ifcfg-eth0的配置详情:[root@localhost ~]# vim /etc/sysconfig/network-scripts/ifc...【详细内容】
2021-12-24  忆梦如风    Tags:网卡   点击:(10)  评论:(0)  加入收藏
1、查找当前目录下所有以.tar结尾的文件然后移动到指定目录find . -name “*.tar” -execmv {}./backup/ ;注解:find –name 主要用于查找某个文件名字,-exec 、xargs可...【详细内容】
2021-12-17  郭主任    Tags:运维   点击:(20)  评论:(0)  加入收藏
对于经常上网的朋友来说,除了手机购物上网,pc端玩网页游戏还是很多小伙伴首选的,但是有时候明明宽带链接上了,打开浏览器却出现上不了网的现象,下面小编要来跟大家说说电脑有网络...【详细内容】
2021-12-16  小白系统    Tags:网页无法打开   点击:(28)  评论:(0)  加入收藏
在访问像github、gitlab这样的外国网站时,很有可能会出现页面加载不出来或找不到页面的错误。这时候有的朋友就会以为是网络的问题,于是把Wifi断掉连上自己手机的热点,结果却还...【详细内容】
2021-12-15  启施技术IT狼叔    Tags:外网   点击:(16)  评论:(0)  加入收藏
网络地址来源:获取公网IP地址 https://ipip.yy.com/get_ip_info.phphttp://pv.sohu.com/cityjson?ie=utf-8http://www.ip168.com/json.do?view=myipaddress...【详细内容】
2021-12-15  韦廷华12    Tags:外网ip   点击:(15)  评论:(0)  加入收藏
准备好软件IPOP、用ENSP模拟一下华为交换机 启动交换机 <Huawei>sysEnter system view, return user view with Ctrl+Z.[Huawei]sysname FTPClient[FTPClient]interface vla...【详细内容】
2021-12-15  思源Edward    Tags:交换机   点击:(24)  评论:(0)  加入收藏
我们经常用到netstat命令查看主机连接状况,包括连接ip、端口、状态等,今天就练习下shell分析netsat结果。描述假设netstat命令运行的结果我们存储在nowcoder.txt里,格式如下:Pro...【详细内容】
2021-12-14  K佬食古    Tags:netstat   点击:(19)  评论:(0)  加入收藏
什么是滑动窗口?窗口是操作系统开辟的一块缓存空间,发送方在收到接收方ACK应答之前,必须在缓冲区保留已发送的数据,如果按期收到确认应答,数据就可以从缓冲区移除。什么是滑动窗...【详细内容】
2021-12-14  DifferentJava    Tags:TCP   点击:(30)  评论:(0)  加入收藏
概述日常管理华为路由设备过程中,难为会忘记设备登录密码,那么该如何重置设备登录密码吗?本期文章将全面向各位小伙伴总结分享。重置华为设备登录密码思路先行 采用console登录...【详细内容】
2021-12-10  onme0    Tags:   点击:(27)  评论:(0)  加入收藏
最新更新
栏目热门
栏目头条