C 常量和字面值
预计时间: 5分钟
在C语言中,常量(constant)指程序不能改变的固定值,可以是任意基本数据类型的值。
常量是指程序在执行过程中可能不会改变的固定值。这些固定值也称为字面值(literal)。
常量可以是任何基本数据类型,例如整数常量、浮点常量、字符常量或字符串字面值。还有枚举常量。
常量的处理方式与常规变量一样,只是它们的值在定义后不能修改。
C整数常量
整数常量可以是十进制、八进制或十六进制常量。 前缀指定基数或底数: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 */
C浮点常量
浮点常量具有整数部分、小数点、小数部分和指数部分。您可以以十进制形式或指数形式表示浮点常量。
表示小数形式时,必须包含小数点、指数或两者;在表示指数形式时,您必须包括整数部分、小数部分或两者。有符号指数由 e 或 E 引入。
以下是浮点常量的一些示例 -
3.14159 /* Legal */
314159E-5L /* Legal */
510E /* Illegal: incomplete exponent */
210f /* Illegal: no decimal or exponent */
.e55 /* Illegal: missing integer or fraction */
C字符常量
字符常量用单引号括起来,例如,'x' 可以存储在char类型的简单变量中。
字符常量可以是普通字符(例如,'x')、转义序列(例如,'\t')或通用字符(例如,'\u02C0')。
反斜线字符常量
C 中的某些字符在以反斜杠开头时表示特殊含义,例如换行符 (\n) 或制表符 (\t)。
以下是显示一些转义序列字符的示例 -
#include <stdio.h>
int main() {
printf("Hello\tWorld\n\n");
return 0;
}
编译并执行上述代码时,会产生以下结果 -
Hello World
C字符串常量
字符串字面值(string iiteral)也称为字符串常量,是用双引号“”括起来的一个字符序列。字符串包含类似于字符常量的字符:纯字符、转义序列和通用字符。
您可以使用字符串常量将长行分成多行并使用空格分隔它们。
以下是字符串常量的一些示例。这三种形式都是相同的字符串。
"hello, dear"
"hello, \
dear"
"hello, " "d" "ear"
定义C常量
C中有两种简单的方法来定义常量
- 使用#define预处理器。
- 使用const关键字。
#define 预处理器
下面给出了使用#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前缀来声明具有特定类型的常量,如下所示 -
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
请注意,用大写字母定义常量是一种很好的编程习惯。
更新于2022年04月09日