c++中的变量存储

1.进程

一个正在进行的程序 , 是程序从开始到结束的一个过程
每个进程都对应一个空间
32 平台 , 每个进程最大 4GB
0x00 00 00 00 ~ 0xFF FF FF FF 结束
这片区间可分为
堆区
栈区
全局区
常量区
代码区

普通局部变量

定义位置 : 函数中
定义的语法 :
数据类型 变量名 = ;
作用范围:当前的 {} 之间
生命周期:当前 {} 结束,局部变量就释放
内存区域:栈区
注意事项:
1 、局部变量不初始化内容随机
示例:
void test01()
{
int num1 = 10; //局部变量
{
int num1 = 20;
printf("num1 = %d\n", num1); //就近原则 20
}
printf("num1 = %d\n", num1); // 10
}

普通全局变量

定义位置 : 函数外
定义的语法 :
数据类型 变量名 = ;
作用范围:当前源文件以及其他源文件都可以识别。
生命周期:整个进程 . 进程结束 , 全局变量才会被释放
内存区域:全局区
注意事项:
1 、全局变量 不初始化 内容为 0
2 、全局变量和局部变量同名 优先选择局部变量。
3 、如果使用其他源文件的全局变量 , 请加 extern 声明
int num1 = 10; //全局变量
void test02()
{
int num1 = 20;
printf("num1 = %d\n", num1); //就近原则 20
}

静态局部变量

定义位置 : 函数中
定义的语法 :
static 数据类型 变量名 = ;
作用范围:只在 {} 语句中有效
生命周期:整个进程 , 进程结束才会被释放
内存区域:全局区
注意事项:
1 、静态局部变量如果遇到重复定义 , 只在第一次定义有效
2 、静态局部变量不初始化内容为 0
void test03()
{
static int num;
printf("num = %d\n", num);
num++;
}
int main()
{
test03();
test03();
test03();
test03();
return 0;
}

静态全局变量

定义位置 : 函数外
定义的语法 :
static 数据类型 变量名 = ;
作用范围:只能在当前源文件使用 示例
生命周期:整个进程 , 进程结束才会被释放
内存区域:全局区
注意事项:
1 、静态全局变量 不初始化 内容为 0
2 、只能在当前源文件使用
static int num = 100;//静态全局变量
int main(int argc, char const *argv[])
{
printf("num = %d\n", num);
return 0;
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值