C语言中的变量用于存储程序运行时的数据,变量的值可以在程序执行过程中变化。变量是程序的基本组成部分,理解变量的定义、类型、作用域和存储类别是学习 C 语言的基础。
1. 什么是变量
变量是存储数据的命名空间,用于保存不同类型的数据。每个变量都有:
- 名称:变量的标识符,用于引用变量。
- 类型:决定变量可以存储的数据类型。
- 值:变量当前存储的数据。
- 存储位置:变量在内存中的地址。
2. 声明与定义变量
在 C 语言中,变量在使用之前必须先声明或定义。变量的声明包括指定变量的类型和名称,并可以选择性地初始化其值。
2.1 变量声明的语法
<数据类型> <变量名>; // 声明变量
<数据类型> <变量名> = 值; // 声明并初始化变量
示例
int age; // 声明一个整数变量
float price = 10.5; // 声明并初始化一个浮点型变量
char grade = 'A'; // 声明并初始化一个字符型变量
2.2 多变量声明
在同一行可以声明多个变量(类型相同),并可以选择性地初始化。
示例
int x, y, z; // 声明三个整数变量
int a = 10, b = 20; // 声明两个整数变量并初始化
float f1 = 3.5, f2; // 声明两个浮点变量,初始化其中一个
2.3 初始化变量
初始化是指在变量声明的同时赋值。
未初始化变量的行为
如果声明变量时未初始化,变量的值是未定义的(随机值),这可能导致程序行为不可预测。
示例
#include <stdio.h>
int main() {
int x; // 未初始化
printf("Value of x: %d\n", x); // 输出的值是随机的
return 0;
}
初始化变量的示例
int x = 10; // 初始化为10
float pi = 3.14; // 初始化为3.14
char c = 'A'; // 初始化为字符 'A'
3. 变量的命名规则
变量名是一个标识符,必须遵循以下规则:
- 变量名只能由字母(
a-z
,A-Z
)、数字(0-9
)和下划线(_
)组成。 - 变量名必须以字母或下划线开头,不能以数字开头。
- 变量名区分大小写(
age
和Age
是两个不同的变量)。 - 不能使用 C 的关键字作为变量名(如
int
、if
、return
等)。
示例:合法变量名
int age;
float _price;
char grade1;
示例:非法变量名
int 1age; // 错误:不能以数字开头
float price$; // 错误:不能包含特殊字符
char return; // 错误:不能使用关键字
4. 变量的作用域
变量的作用域指变量在程序中的可见性,分为以下三种类型:
4.1 局部变量
- 局部变量是在函数或代码块内部定义的变量,只在其定义的作用范围内可见。
- 局部变量在函数调用结束后被销毁。
示例