C中文字和符号常量的区别和定义?

7 c constants

我无法掌握符号和文字常量的定义和用法,我想知道你是否有人能够解释它们并强调它们之间的差异.谢谢!

小智 6

文字常量是在任何需要的地方直接键入到程序中的值。例如

int tempInt = 10;

tempInt 是一个 int 类型的变量;10 是字面常量。不能给 10 赋值,也不能改变它的值。符号常量是由名称表示的常量,就像表示变量一样。但是,与变量不同的是,常量初始化后,其值不能更改。

如果你的程序有一个名为 Students 的整数变量和另一个名为 classes 的变量,你可以计算你有多少学生,给定班级数量,如果你知道每个班级有 15 名学生:

学生 = 班级 * 15;


Ily*_*gan 5

符号是编译器处理的东西。编译器对待 aconst的方式与对待变量的方式非常相似。另一方面, a#define是编译器甚至不知道的东西,因为预编译器将它转换为它的值。这就像搜索和替换。如果你这样做

#define A 5
Run Code Online (Sandbox Code Playgroud)

进而

b += A;
Run Code Online (Sandbox Code Playgroud)

预编译器将其翻译成

b += 5;
Run Code Online (Sandbox Code Playgroud)

编译器看到的只是数字 5。