变量详解:创建初始化与内存管理
目录
一、变量的创建与初始化
变量的基本概念
变量声明语法
变量初始化
二、变量的分类
全局变量 vs 局部变量
变量名冲突处理
三、变量的内存存储
内存区域划分
注意事项
一、变量的创建与初始化
了解类型的作用后,我们如何使用它呢?类型主要用于声明变量。
变量的基本概念
在C语言中:
-
变量:存储程序中可能发生变化的值
-
常量:存储固定不变的值
变量声明语法
变量创建的基本语法格式为:
data_type variable_name; // 数据类型 变量名
示例声明:
int age; // 整型变量
char ch; // 字符变量
double weight; // 双精度浮点型变量
变量初始化
在声明变量时赋予初始值称为初始化:
int age = 18; // 整型初始化
char ch = 'w'; // 字符初始化
double weight = 48.0; // 浮点数初始化
unsigned int height = 100; // 无符号整型初始化
二、变量的分类
全局变量 vs 局部变量
特性 | 全局变量 | 局部变量 |
---|---|---|
定义位置 | 函数外部(大括号外部) | 函数内部(大括号内部) |
作用域 | 整个程序(跨文件需extern声明) | 仅定义它的代码块内 |
生命周期 | 程序运行期间 | 进入代码块创建,退出时销毁 |
存储位置 | 静态区 | 栈区 |
示例代码:
#include <stdio.h>int global = 2023; // 全局变量int main()
{int local = 2018; // 局部变量printf("局部变量: %d\n", local);printf("全局变量: %d\n", global);return 0;
}
变量名冲突处理
当局部变量与全局变量同名时:
-
局部变量优先原则
-
全局变量仍然存在,但被局部变量"遮蔽"
示例:
#include <stdio.h>int n = 1000; // 全局变量int main()
{int n = 10; // 局部变量printf("%d\n", n); // 输出10(局部变量)return 0;
}
三、变量的内存存储
内存区域划分
C/C++程序运行时主要使用三个内存区域:
-
栈区(Stack)
-
存储局部变量
-
自动分配和释放
-
空间有限
-
-
静态区(Static)
-
存储全局变量和static变量
-
程序运行期间一直存在
-
-
堆区(Heap)
-
用于动态内存分配
-
需要手动管理(malloc/free)
-
注意事项
-
实际内存管理比这种简单划分更复杂
-
在操作系统部分会深入讲解内存管理细节
-
不同平台可能有不同的内存布局实现