常量是指该程序可能无法在其执行期间改变的固定值。这些固定值也被称为文字。
常量可以是任何像一个整型常量,一个浮点常量,字符常量或字符串文字的基本数据类型。还可以是枚举常量。
常量只是它们的值不能定义后像常规变量进行修改处理。
常量整型
整数常量可以是十进制,八进制,或十六进制常数。前缀指定基或基数:0x或0X的十六进制,0表示八进制,十进制不用特别表示。
整数常量/文字也可以有一个后缀为U和L的组合,分别为无符号和长整型。后缀可以是大写或小写,并且可以以任意顺序。
这里是整数常量的一些例子:
212 /* Legal */ 215u /* Legal */ 0xFeeL /* Legal */ 078 /* Illegal: 8 is not an octal digit */ 032UU /* Illegal: cannot repeat a suffix */
以下是不同类型的整型常量的其他例子:
85 /* decimal */ 0213 /* octal */ 0x4b /* hexadecimal */ 30 /* int */ 30u /* unsigned int */ 30l /* long */ 30ul /* unsigned long */
浮点文字/常量
浮点字面值具有整数部分,小数点,小数部分和指数部分。可以表示十进制形式或指数形式浮点文字。
同时采用十进制形式表示,则必须包括小数点,指数,或两者并用而指数形式表示,则必须包括整数部分,小数部分,或者两者兼有。无符号的指数,通过e或E引入
下面是浮点面值/常量的一些例子:
3.14159 /* Legal */ 314159E-5L /* Legal */ 510E /* Illegal: incomplete exponent */ 210f /* Illegal: no decimal or exponent */ .e55 /* Illegal: missing integer or fraction */
字符常量
字符文字用单引号,例如,'X' 可以存储在char类型的一个简单的变量。
字符文字可以是一个普通的字符(例如,'X'),转义序列(如“ ')或普遍性 (e.g., 'u02C0').
有一些字符在C语言中,当它们前面加一个反斜杠将有特殊的含义,它们被用来表示类似的换行符( )或制表符( )。在这里,有一些这样的转义序列代码的列表:
转义序列 | 含意 |
---|---|
字符 | |
' | ' 字符 |
" | " 字符 |
? | ? 字符 |
a | 警报或钟 |
退格 | |
f | 换页 |
换行符 | |
回车 | |
水平制表 | |
v | 水直制表 |
ooo | 一到三位数字的八进制数表示形式 |
xhh . . . | 一个或多个数字的十六进制数 |
以下为例子来说明一些转义字符序列:
#include <stdio.h> int main() { printf("Hello World "); return 0; }
当上述代码被编译和执行时,它产生了以下结果:
Hello World
字符串文字
字符串文字或常量用双引号“”。一个字符串包含类似于字符文字字符:普通字符,转义序列和通用字符。
可以使用字符串和分隔使用空格打破长行变成多行。
下面是字符串的一些例子。所有的三种形式是相同的字符串。
"hello, dear" "hello, dear" "hello, " "d" "ear"
定义常量
C语言有两种简单的方法来定义常量:
-
使用#define预处理。
-
使用const关键字。
#define预处理
下面是使用预处理 #define 定义常量形式:
#define identifier value
下面的例子说明了它的细节:
#include <stdio.h> #define LENGTH 10 #define WIDTH 5 #define NEWLINE ' ' int main() { int area; area = LENGTH * WIDTH; printf("value of area : %d", area); printf("%c", NEWLINE); return 0; }
让我们编译和运行上面的程序,这将产生以下结果:
value of area : 50
const关键字
可以使用 const的前缀来声明常量与一个特定的类型如下:
const type variable = value;
下面的例子说明了它的细节:
#include <stdio.h> int main() { const int LENGTH = 10; const int WIDTH = 5; const char NEWLINE = ' '; int area; area = LENGTH * WIDTH; printf("value of area : %d", area); printf("%c", NEWLINE); return 0; }
让我们编译和运行上面的程序,这将产生以下结果:
value of area : 50
请注意,一个 良好的编程习惯是使用大写来定义常量。