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 */
浮点文字
浮点文字具有整数部分、小数点、小数部分和指数部分。您可以用十进制形式或指数形式表示浮点文字。
表示小数形式时,必须包含小数点、指数或两者;在表示指数形式时,必须包含整数部分、小数部分或两者。带符号指数由 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”)、转义序列(例如“\t”)或通用字符(例如“\u02C0”)。
C 中的某些字符在前面加反斜杠时表示特殊含义,例如换行符 (\n) 或制表符 (\t)。
以下是显示一些转义序列字符的示例 -
#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 预处理器定义常量的形式 -
#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
请注意,以大写字母定义常量是一种良好的编程习惯。