常量

在程序执行的过程中,值不发生改变的量,称为常量。常量分为两类:字面值常量、自定义常量。

一、字面常量:

1.包括:

A:字符串常量 "hello"
B:整数常量 12,23
C:小数常量 12.345
D:字符常量 'a','A','0'
2.对于字面值常量而言,整数默认的类型是 int 类型,浮点数默认的类型是double。如果要用一个整数来表示长整数的数据类型要加 L 或者 l。
一个字符常量的小数要表示为单精度,则单精度的浮点数要加 F 或者 f。
如:
30 /* 整数,代表是 int 型 */
30L/* 长整数,代表 long 型 */
3.14159 /* 代表 double 型 */
3.14159F /* 代表 float 型 */
3.转义字符常量
对于字符常量而言,在 C语言 中,有一些特定的字符,当它们前面有反斜杠\时,它们就具有特殊的含义。

二、定义常量

在 C 中,有两种简单的定义常量的方式:
使用 #define 预处理器;
使用const 关键字。
1.使用 #define 预处理器定义常量的形式: 
#include <stdio.h>
#define LENGTH 10 //切记这里 10 后不能加‘;’分号,因为不是语句
#define WIDTH 5 //切记这里 5 后不能加‘;’分号,因为不是语句
int main()
{
int area;
area = LENGTH * WIDTH;
printf("value of area : %d", area);
return 0;
}
在这里#define 的作用就是将 10 和 5 分别用 LENGTH 和 WIDTH 来替换。 
2.使用 const 前缀声明指定类型的常量
(格式:const type variable = value;)
#include <stdio.h>
int main()
{
const int LENGTH = 10;//必须使用分号,定义常量的语句
const int WIDTH = 5;//必须使用分号,定义常量的语句
int area; //定义变量
area = LENGTH * WIDTH;//长乘以宽,计算面积
printf("value of area : %d", area);//输出面积
return 0;
}
define 是一种宏定义方式声明的变量,表示用标识符代替字面常量,所以绝不能像 const 一样加分号。
如:#define LENGTH 10;这时 LENGTH 相当于 10;了。
而 const int LENGTH = 10;则表示定义了一个变量,只是这个变量的值被赋为10 后,值不能改了。
所以它是一个变量赋值语句,只是加了一个 const 的限制,使得变量不能改变了。可以理解为一个值不能改变的变量,
也就变成常量了。
注意:
把常量定义为大写字母形式,是一个很好的编程习惯。
常量的一个好处是方便维护,可以做到一改俱改,比如在圆的相关运算中,π是一个常数,一个程序中可能很多地方都会使用这个常数,
这次运行可能用 3.14 计算,下次可能用 3.1415 运算,在下次可能继续变,如果把数字硬编码在代码中,每个地方都要手动修改,非常麻烦,
如果定义成常量问题就解决了。
常量的生命周期直到程序结束,变量的生命周期比常量短,变量只是一个暂存量,一般在子函数中,子函数调用结束后释放内存。
用常量设计的代码不能改成变量来实现,如果一个常量用变量来保存,在编写代码的过程中,可能由于误操作对常量的值进行了修改。
推荐在头文件中定义好常量,供工程全局使用。
 

 

 
 
posted @ 2020-04-16 16:48  泰勒斯儿童营养牙膏  阅读(562)  评论(0)    收藏  举报