C 语言的常量

我们通常意义上的常量其实和英语中的常量这个单词不是一个意思,汉语中的常量对应的是 Literal(字面值),而不是 Constant(常量)。

这里我们分别讲一下这两个内容,大家就会有自己的对于“常量”的相关的认识了。

1. 字面值

字面值通常用来表示一个固定的值。这些值可以直接用在程序中,而不需要像变量一样经过声明和初始化以后才可以使用。

字面值分为以下几种:

1.1 整数

这里的整数包含十进制,八进制和十六进制。

八进制前要加上前缀 0,十六进制前要加上前缀 0x 或者 0X

同时在这些整数的后面可以增加后缀 U 或者 L。这里和上面一样带小写都可以。这两个后缀分别代表着 unsigned 和 long,

Tips: 请大家注意 C 语言对于大小写是敏感的。所以在十六进制的时候才会出现两种前缀。

比如:

  • 十进制:1234
  • 八进制:0345
  • 十六进制:0xef12

1.2 浮点数

浮点数的表示一般由整数部分,小数点,小数部分,和指数部分组成。指数部分的符号 e 可以大写为 E。一般会有一下几种形式。

  • 只有整数部分,小数点和小数部分。例如:3.1415926
  • 包含整数部分,小数点,小数部分和指数部分。例如:1.312E-3
  • 只有整数和指数部分。例如:31415926e-7L

1.3 字符

字符就是常见的我们键盘上可以敲入的英文字母,符号等。如:asdf;@

1.4 字符串

字符串就是由一些列的字符用双引号包围。例如:

Tips:这里的双引号(" ")是在英文输入法下输入的引号,不是中文输入法中的引号。这点在系统中同时有中文和英文输入法的环境下很容易引起错误。


"hello world!"

"This is a lesson for C language."

2. 常量

讲完了字面值之后,我们就可以在这里可以认识一下 C 语言中的用英文原文直译过来的常量是什么了。

有些时候,我们需要反复使用一些内容,比如计算圆周率的派值。如果程序中很多地方使用,而这个值始终又是不变的,甚至应该是不能随意改变的。那么这是时候。我们就会用到 C 语言中的常量。

这里有 2 种方式来定义常量。

一种是使用预处理命令 #define

#define pi 3.1415926

这种方式一般出现在程序函数体的外部。还有一种方式是在函数体内部使用关键字 const。

const float pi = 3.1415926;

常量定义好之后在程序编译和执行的过程中是永远不会改变的,直接拿来使用即可。

3. 小结

C 语言中的常量可能和我之前所认识的常量不太一样。其实叫做字面值更为贴切一点。它是由整数数字,浮点数字,字符,字符串等组成。

而与常量这个英文单词对应的确实也是一个常量,只不过这个常量是一个不可以变化的量。只是用一个特定的名称,代表了另外一个字面值。这个常量是恒定的。不可以尝试改变一个常量,因为会产生错误。而常量的定义也会有两种不同的方式。一种是采用预处理的方式,而另外一种则是采用了关键字的定义。两者定义的位置也是不一样的,我们在使用的时候要注意这一点。