局部变量只在某一区域内有效
全局变量在整个范围有效
静态变量在程序开始后定义,而且只能定义一次
运行程序时系统内存会有四个区域
自己申请的内存 存在堆区
代码区存函数的内存
栈区存局部变量,在程序结束之后自动释放内存
#include <stdio.h>
int main()
{
int i; //结果是五个11
for ( i = 0; i < 5; i++)
{
int b = 10;
b++;
printf_s("%d\n", b);
}
}
第一次循环时,b这个变量加1变成11,显示11,此时栈区中内存也是11,然后自动释放内存,
所以下一次循环系统又会给b申请内存,数值为10,最后显示五个11
而静态全局区存 全局变量,静态变量
#include <stdio.h>
int main()
{
for ( int i = 0; i < 5; i++)
{
static int b = 10; //显示11 12 13 14 15
b++;
printf_s("%d\n", b);
}
}
静态数据在整个程序结束时才死亡,所以第一次循环后(b==11),系统不能重新申请一个数值为10的内存,内存中存的仍是11,b以11进行下一次循环