C语言的常量类型有三种:
1.字面常量:就是键盘上能打出来的东西,包括整型常量,字符常量,字符串常量。
2.常变量:形式为在创建变量前加 const 这个关键字。
Eg: const int num =1 ;
这时候这个变量被赋予了常属性,无法被修改,但是他本质上还是一个变量。
3.#define 定义的标识符常量。 它放在预处理的位置,被定义的常量于常量无异。
Eg:#define Ten 10 //Ten即是10,10即是Ten
这时候后面你可以用Ten来代替这个常量,而常变量没有这个功能。
Eg:int num = Ten;
4.枚举常量。 需要用到 enum 这个关键字。他像是创造了一个集合,然后放置在主函数之前。
Eg:enum result
{
good,
common,
failed,
};
这个集合里面有三种常量,而且已经按照你先后输入顺序排好了下标(从0开始),这个集合的名称叫result(成绩)。
假设没有这个,我们一开始想表达一个班的成绩是好,普通,还是不及格的话,我的话先自己约定好,1是不及格,2是一般,3是好,然后开始为班上的每个同学创建一个变量。
但是,这个变量十分的危险,因为他的边界没有限定,而且如果是不知道你的声明的话,那可能会看得别人一头雾水。
这时候你可以直接创建一个变量为
enum result TOM =good;
直接明了,相比前者的方法,更有机器去适应人的感觉,让我联想起了编程语言的发展历程,也是这样的感觉。
字符常量无法改变,但是他的意义可以改变,被改变的这些我们称之为转义字符。
如一开始就一直频频露头的\n, 他的意思就是另起一行。
常见的还有:
\t tab键~一个水平指标符
\\ 一个 \
\' 一个 '
\" 一个 "
\ddd d上面可以填0~8, 表示一个八进制数,这三个数转换为十进制后表示的是ASCII上的编号
\xdd d上可以填0~E,表示一个十六进制数,这两个数转换为十进制后表示的是ASCII上的编号
Eg:\132——→(十进制)90——→(在ASCII编码上表示的字符为) Z
像上面类似的还有一种叫输出符,常见的输出符有:
%d 整形输出
%c 字符输出
%s 字符串输出
%f 浮点输出
%lf 双浮点输出
%p 指针输出
%% 一个%