在本教程中,您将了解 C 语言中的字面量和常量。通过简单的示例,您还会注意到字面量和常量之间的细微差别。
在 C 编程中,常量和字面量是指在程序过程中固定不变的值。我们经常混淆常量和字面量的识别,因为它们之间只有一线之隔。字面量本身就是常量值。例如:
int X = 10;
printf(“ Learn C through Learn eTutorials!”);
这里的数字“10”和“Learn C through Learn eTutorials”都是字面量。
在 C 编程中,字面量主要分为四种类型:
C 中的整型字面量是仅表示整型值的数值。不能表示小数或指数值。整型字面量有三种类型:
| 整型字面量 | 示例 |
|---|---|
| 十进制字面量 | 10,3369,555u |
| 八进制字面量 | 036,099,024L |
| 十六进制字面量 | 0xdEbL,0x5Au |
当您观察以上示例时,您可以看到以下发现:
符号限定符(U 或 u):附加在字面量后面,表示该值为无符号整数类型。
大小限定符 L 或 l:附加在字面量后面,表示整数类型的大小为长整型。
另一个重要特性是,整型字面量中使用的所有字母都不区分大小写,即“x”和“X”或“e”和“E”都表示相同的意思。
浮点型字面量是指包含小数或指数数字的字面量。这些字面量主要有两种类型:实数和复数。实数包含以下部分:
I. 整数部分
II. 实数部分
III. 小数部分
IV. 指数部分
浮点型字面量可以有两种形式表示:
| 浮点型字面量形式 | 示例 |
|---|---|
| 十进制形式 | +10.50, -3.3, 6.19 |
| 指数形式 | +1.6e28, -2.4e12, 3.4e-25 |
C 中的字符字面量是用单引号括起来的单个字符。
char x ='a';
在这个例子中,单个字符“a”存储在变量(或地址)x 中,因此“a”只不过是一个字符字面量。
当我们尝试将多个字符存储到字符变量中时,编译器会发出警告,指出多字符字符常量,如下面的代码片段所示。
#include <stdio.h&rt;
int main()
{
char v = 'v';
printf("%c",v);
}
输出
v
#include <stdio.h&rt;
int main()
{
char v = 'var';
printf("%c",v);
}
输出
r
C 程序不仅处理简单字符,还处理特殊的转义序列。例如,`\t` 代表制表符,`\n` 代表将光标移到下一行。
正如字母在 C 语言中构成单词一样,字符数组在 C 中称为字符串。因此,字符串由字符、转义序列、符号和空格组成。
C 中的字符串字面量是用双引号括起来的字面量。例如:
x = “Learn”;
y = “C programming”;
在此示例中,x 和 y 是存储字符串字面量“Learn”和“C Programming”的字符串变量。
注意:‘C’为字符字面量分配空间,而“C”为字符串字面量分配空间。
C 中的常量是其值在定义后无法更改的变量。在编程中,使用常量而不是字面量是一个好习惯。
假设您正在为银行软件编写一个程序,其中最低余额为 1000 卢比。您可以定义一个常量,例如“min_bal”,并为其赋值 1000。这样,在程序后期,您就不必一遍又一遍地调用该值。而是可以在需要时调用常量“min_bal”。此外,还有未来修改的机会。假设银行决定将最低余额提高到 2500 卢比,您无需更改所有整数字面量。您需要做的就是转到声明常量的那一行,并将值“1000”替换为“2500”。这就是程序员总是偏爱常量而非字面量的原因。
常量可以通过两种方式定义:
‘#define’ 的工作方式类似于函数,通过声明常量名称并一次性赋值,而不使用“=”。
语法是:
#define constant_name constant_value
// Example
#define pi 3.14
以下示例将说明使用 #define 预处理器来赋值常量:
#include <stdio.h>
#define a 5
#define b 6
#define jump '\n'
main()
{
int c;
c=a+b;
printf("The sum is %c %d",jump,c);
getch();
}
输出
The sum is 11
‘const’ 是一个简单的关键字,您可以使用以下语法声明常量:
const data_type c
// Example
const float pi = 3.14;
因此,与预处理器不同,这里我们必须在末尾加上分号 (;) ,因为‘const’声明被视为一个语句,并且使用赋值运算符“=”为常量赋值。上面的程序可以这样编写:
#include <stdio.h&rt;
const int a = 5;
const int b = 6;
const char jump= '\n';
main()
{
int c;
c=a+b;
printf("The sum is %c %d",jump,c);
getch();
}
输出
The sum is 11