C 语言变量、常量和字面量

在上一个教程中,您了解了 C 语言的注释。现在,让我们来了解 C 语言中的变量、常量和字面量。

变量

在编程中,变量是一个用于保存数据的容器(存储区域)。

为了指示存储区域,每个变量都应有一个唯一的名称(标识符)。变量名只是内存位置的符号表示。例如

int age = 25;

这里,age 是一个 `int` 类型的变量,我们为其赋了一个整数值 `25`。

变量的值可以改变,因此得名变量。

char ch = 'a';
// some code
ch = 'l';

访问此页面以了解更多关于 变量可以存储的不同类型数据

为变量命名有哪些规则?

1. 变量名只能包含字母(大写和小写字母)、数字和下划线。

2. 变量的第一个字符必须是字母或下划线。

3. 变量名(标识符)的长度没有规定。但是,如果变量名超过 31 个字符,某些编译器可能会出现问题。

注意:您应该始终尝试为变量起有意义的名称。例如:`firstName` 是比 `fn` 更好的变量名。

我们可以更改变量的数据类型吗?

C 语言是一种强类型语言。这意味着一旦声明了变量类型,就不能更改。例如

int number = 5;      // integer variable
number = 5.5;        // error
double number;       // error

这里,number 变量的类型是 `int`。您不能将浮点数(小数)值 5.5 赋给此变量。同样,您也不能将变量的数据类型重新定义为 `double`。顺便说一句,要在 C 语言中存储小数,您需要将其类型声明为 `double` 或 `float`。


常量

如果您想定义一个值不能被更改的变量,可以使用 `const` 关键字。这将创建一个常量。例如,

const double PI = 3.14;

注意,我们添加了关键字 `const`。

这里,PI 是一个符号常量;它的值不能被更改。

const double PI = 3.14;
PI = 2.9; //Error

您还可以使用 `#define` 预处理器指令定义常量。我们将在 C 宏教程中学习它。


字面量

字面量是用于表示固定值的 数据。它们可以直接在代码中使用。例如:12.5'c' 等。

这里,1、`2.5` 和 'c' 是字面量。为什么?因为您不能为这些项赋不同的值。


1. 整数

整数是没有小数部分或指数部分的数字字面量(与数字相关)。C 语言中有三种类型的整数字面量:

  • 十进制 (基数 10)
  • 八进制 (基数 8)
  • 十六进制 (基数 16)

例如

Decimal: 0, -9, 22 etc
Octal: 021, 077, 033 etc
Hexadecimal: 0x7f, 0x2a, 0x521 etc

在 C 语言中,八进制以 0 开头,十六进制以 0x 开头。


2. 浮点数字面量

浮点数字面量是具有分数形式或指数形式的数字字面量。例如

-2.0
0.0000234
-0.22E-5

注意: `E-5 = 10-5`


3. 字符

字符字面量是通过将单个字符括在单引号中创建的。例如:'a''m''F''2''}' 等。


4. 字符串字面量

字符串字面量是用双引号括起来的字符序列。例如

"good"                  //string constant
""                     //null string constant
"      "               //string constant of six white space
"x"                    //string constant having a single character.
"Earth is round\n"         //prints string with a newline

5. 转义序列

有时,有必要使用 C 语言中无法输入或具有特殊含义的字符。例如:换行(回车)、制表符、问号等。

为了使用这些字符,会使用转义序列。

转义序列 字符
\b 退格符
\f 换页符
\n 换行
\r 回车
\t 水平制表符
\v 垂直制表符
\\ 反斜杠
\' 单引号
\" 双引号
\? 问号
\0 空字符

例如:`\n` 用于换行。反斜杠 `\` 会导致编译器在处理字符时脱离正常方式。

视频:C 语言中的变量

你觉得这篇文章有帮助吗?

我们的高级学习平台,凭借十多年的经验和数千条反馈创建。

以前所未有的方式学习和提高您的编程技能。

试用 Programiz PRO
  • 交互式课程
  • 证书
  • AI 帮助
  • 2000+ 挑战