变量与常量
变量声明与初始化、const 常量、#define 宏常量、命名规范
变量与常量
变量是内存中一块命名空间,C 语言需要先声明再使用,并且声明时必须指定类型。
学完本章你将: 掌握变量声明初始化、const 常量、#define 宏常量。
变量声明与初始化
c
#include <stdio.h>
int main() {
int age; // 声明(未初始化,值是垃圾!)
int score = 100; // 声明 + 初始化
float pi = 3.14f; // f 后缀表示 float 而非 double
char grade = 'A'; // 单引号用于字符
// 多个变量同时声明
int a = 1, b = 2, c = 3;
printf("score = %d\n", score);
return 0;
}
⚠️ 未初始化的局部变量值是随机的垃圾数据——C 不会自动清零。这就是为什么很多 bug 出现在"忘初始化"。
const —— 只读常量
c
const int MAX_SIZE = 100; // 不能再修改
// MAX_SIZE = 200; // ❌ 编译错误
const float PI = 3.1415926;
#define —— 宏常量
c
#define PI 3.1415926
#define MAX_LEN 256
#define APP_NAME "MyApp"
int main() {
double area = PI * r * r;
char name[MAX_LEN];
printf("%s\n", APP_NAME);
return 0;
}
| const | #define | |
|---|---|---|
| 本质 | 变量(有类型) | 文本替换(预处理) |
| 作用域 | 遵循 C 作用域规则 | 全局,无作用域 |
| 调试 | 可以 | 无法(预处理后就没了) |
| 现代 C | 推荐 | 仅用于条件编译等特殊场景 |
命名规范
c
// ✅ 推荐风格
int user_count = 0; // 小写 + 下划线
const int MAX_SIZE = 100; // 常量通常全大写
// ❌ 避免
int 2name; // 不能以数字开头
int my-var; // - 不允许
int if; // 关键字不能用