全局变量:在函数和大括号外部的变量, 称为全局变量
局部变量:在函数或者代码块(一对{}就是一个代码块)中的变量, 称为局部变量
★下面我将用一个例子来说明两种变量的异同
#include<stdio.h> #include<windows.h> int g_val = 2018; // 变量g_val为全局变量: // 作用域: 整个工程 // 生命周期:从程序开始到程序结束 // 全局变量可以先定义在初始化, 也可以定义的同时初始化 // 存储: 静态区 // 程序一开始就会为变量分配存储空间, 直到程序结束才会释放掉 int main() { int a = 10; // 变量a为局部变量: // 作用域: 一个代码块内({}) //生命周期:出了代码块它的生命就结束了 // 存储 : 栈区 // 存储在栈中的数据有一个特点, 变量出了它的作用域系统会自动释放 printf("%d\n", g_val); printf("%d\n", a); system("pause"); return 0; }
下边是一张内存中局部变量和全局变量在内存中位置的一张简要的图片: