Z
ZHANK
入门基础

变量与常量

变量声明与初始化、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;       // 关键字不能用