type
status
date
slug
summary
tags
category
icon
password
Property
有些数据类型在程序使用之前已经预先设定好了,在整个程序的运行过程中没有变化,称为常量(constant);在程序运行期间可能会改变或被赋值,称为变量(variable)
有时,在程序中要使用常量,例如计算圆的周长:
这里3.14159代表常量pi()。在该例中,输入实际值便可使用这个常量。这种情况使用符号常量(symbolic constant)会更好,也就是说计算机稍后会用实际值完成替换:
如何创建符号常量?
方法之一是声明一个变量,然后将该变量设置为所需的常量:
这样做提供了一个符号名,但是pi是一个变量,程序可能会无意间改变它的值。
C语言还提供了一个更好的方案——C预处理器
预处理器也可用来定义常量。只需在程序顶部添加下面一行:
注意:末尾不用加分号,因为这是一种由预处理器处理的替换机制。
用大写表示符号常量是 C 语言一贯的传统。这样,在程序中看到全大写的名称就立刻明白这是一个符号常量,而非变量。大写常量只是为了提高程序的可读性。
另外,还有一个不常用的命名约定,即在名称前带c_或k_前缀来表示常量(如c_level或k_line)。
符号常量的命名规则与变量相同。可以使用大小写字母、数字和下划线字符,首字符不能为数字。
const限定符
C90标准新增了const关键字,用于限定一个变量为只:
这使得MONTHS成为一个只读值,可以在计算中使用MONTHS,可以打印MONTHS,但是不能更改MONTHS的值。const用起来比#define更灵活。
明示常量
C头文件
limits.h
和float.h
分别提供了与整数类型和浮点类型大小限制相关的详细信息。每个头文件都定义了一系列供实现使用的明示常量。例如,limits.h
头文件包含以下类似的代码:这些明示常量代表int类型可表示的最大值和最小值。如果系统使用32位的int,该头文件会为这些明示常量提供不同的值。
类似地,
float.h
头文件中也定义一些明示常量,下表所列都与float类型相关。把明示常量名中的FLT分别替换成DBL和LDBL,即可分别表示double和long double类型对应的明示常量。