C语言中,常量是指在程序运行期间其值不发生变化的数据。常量可以分为整型常量、浮点常量、字符串常量和标识常量。
1. 整型常量
整型常量(简称整数)表示整数值,可以是十进制、八进制或十六进制表示。
十进制数:不以0开头的数字。
八进制数:以0开头的数字。
十六进制数:以0x或0X开头的数字。
#include <stdio.h> int main() { int dec = 123; // 十进制 int oct = 0123; // 八进制 int hex = 0x123; // 十六进制 printf("Decimal: %d\n", dec); printf("Octal: %d\n", oct); printf("Hexadecimal: %d\n", hex); return 0; }
编译并运行:
gcc -o int_constants int_constants.c ./int_constants
结果:
Decimal: 123 Octal: 83 Hexadecimal: 291
2. 浮点常量
浮点常量(又称实数)通常包含小数部分。在C语言中,实数只有十进制形式,分为单精度和双精度。浮点数有一般形式和指数形式两种表示方法。
一般形式:如3.14
指数形式:如3.0e-23
#include <stdio.h> #define W 3.0e-23 int main() { float f = 3.14f; // 单精度 double d = 3.14; // 双精度 double e = W; // 指数形式 printf("Float: %f\n", f); printf("Double: %f\n", d); printf("Exponential: %e\n", e); return 0; }
编译并运行:
gcc -o float_constants float_constants.c ./float_constants
结果:
Float: 3.140000 Double: 3.140000 Exponential: 3.000000e-23
3. 字符串常量
字符串常量是用双引号括起来的一串字符。字符串以 `\0`(空字符)结尾。
#include <stdio.h> int main() { char str[] = "Hello, World!"; printf("String: %s\n", str); char singleChar = 'F'; printf("Single Character: %c\n", singleChar); return 0; }
编译并运行:
gcc -o string_constants string_constants.c ./string_constants
结果:
String: Hello, World! Single Character: F
4. 标识常量
标识常量(也叫符号常量)使用宏定义(`#define`)来创建。其名称通常是一个标识符,使用前必须预先定义。
#include <stdio.h> #define MAX 10 int main() { for (int i = 0; i < MAX; i++) { printf("%d ", i); } printf("\n"); return 0; }
编译并运行:
gcc -o define_constants define_constants.c ./define_constants
结果:
0 1 2 3 4 5 6 7 8 9
5. 字符常量
字符常量是用单引号括起来的一个字符。例如,字符常量 `'A'` 表示字符 `A`,其对应的ASCII值是65。
#include <stdio.h> int main() { char a = 'F'; printf("Character: %c, ASCII: %d\n", a, a); return 0; }
编译并运行:
gcc -o char_constants char_constants.c ./char_constants
结果:
Character: F, ASCII: 70