常量是指程序在执行期间不会改变的固定值.这些固定值也称为文字.
常量可以是任何基本数据类型,如整数常量,浮点常量,字符常量或字符串文字.还有枚举常量.
常量被视为常规变量,除了它们的值在定义之后无法修改.
整数文字可以是十进制,八进制或十六进制常量.前缀指定基数或基数:十六进制为0x或0X,八进制为0,十进制不为.
整数文字也可以有一个后缀,即U和L的组合,对于无符号和长,分别.后缀可以是大写或小写,可以是任何顺序.
以下是整数文字的一些示例 :
212/* Legal */ 215u/* Legal */ 0xFeeL/* Legal */ 078/*非法:8不是八进制数字*/ 032UU/*非法:不能重复后缀*/
以下是各种类型的整数文字的其他示例 :
85/*十进制*/ 0213/*八进制*/ 0x4b/*十六进制*/ 30/* int */ 30u/* unsigned int */ 30l/* long */ 30ul/* unsigned long */
浮点文字有一个整数部分,一个小数点,一个小数部分和一个指数部分.您可以以十进制形式或指数形式表示浮点文字.
在表示小数形式时,必须包括小数点,指数或两者;并且在表示指数形式时,必须包括整数部分,小数部分或两者.带符号的指数由e或E引入.
以下是浮点文字的一些示例 :
3.14159/* Legal */ 314159E-5L/* Legal */ 510E/*非法:指数不完整*/ 210f/*非法:无小数或指数*/ .e55/*非法:缺少整数或分数*/
包含字符文字在单引号中,例如,'x'可以存储在 char 类型的简单变量中.
字符文字可以是普通字符(例如' x'),一个转义序列(例如,'\ t'),或一个通用字符(例如,'\ u02C0').
C中有某些字符代表以反斜杠开头的特殊含义,例如换行符(\ n)或制表符(\ t).
Escape sequence | Meaning |
---|---|
\\ | \ character |
\' | ' character |
" character | |
\? | ? character |
\a | Alert or bell |
\b | Backspace |
\f | Form feed |
\n | Newline |
\r | Carriage return |
\t | Horizontal tab |
\v | Vertical tab |
\ooo | Octal number of one to three digits |
\xhh . . . | Hexadecimal number of one or more digits |
以下示例显示一些转义序列字符 :
#include <stdio.h> int main() { printf("Hello\tWorld\n\n"); return 0; }
编译并执行上述代码时,会产生以下结果 :
Hello World
字符串文字或常量包含在双引号 "".字符串包含与字符文字类似的字符:普通字符,转义序列和通用字符.
您可以使用字符串文字将长行分成多行并使用空格分隔它们.
以下是字符串文字的一些示例.所有三种形式都是相同的字符串.
"hello, dear" "hello, \ dear" "hello, " "d" "ear"
C中有两种简单的方法来定义常量;
使用 #define 预处理器.
使用 const 关键字.
下面给出了使用#define预处理器定义常量 :
#define identifier value
以下示例详细说明 :
#include <stdio.h> #define LENGTH 10 #define WIDTH 5 #define NEWLINE '\n' int main() { int area; area = LENGTH * WIDTH; printf("value of area : %d", area); printf("%c", NEWLINE); return 0; }
编译并执行上述代码时,会产生以下结果 :
value of area : 50
您可以使用 const 前缀用于声明具有特定类型的常量,如下所示 :
const type variable = value;
以下示例详细说明 :
#include <stdio.h> int main() { const int LENGTH = 10; const int WIDTH = 5; const char NEWLINE = '\n'; int area; area = LENGTH * WIDTH; printf("value of area : %d", area); printf("%c", NEWLINE); return 0; }
编译并执行上述代码时,会产生以下结果 :
value of area : 50
请注意,在CAPITALS中定义常量是一种很好的编程习惯.