C语言---内存

1.定义:

2.在运行程序时,操作系统将虚拟内存进行分区:

  • 全局变量

在同一个.c文件中,全局变量可以直接使用,不需要声明;在不同的文件中要使用其他文件定义的全局变量需要 extern 声明。

普通的全局变量在定义时如果没赋初值,其默认为0.

static 修饰的,就只能在其定义的源文件中使用。

  • 局部变量

普通局部变量:

静态局部变量:

静态全局变量:

#include <stdio.h>
#include <stdlib.h>

void fun()
{    //静态局部变量只初始化一次,重复调用时会直接跳过初始化的代码;
    //静态局部变量不会随着函数结束,而释放空间,重复调用函数时,会重复使用之前开辟的空间。
    static int a = 100;
    a++;
    printf("%d\n",a);
    printf("%p\n",&a);

}
int main()
{
    fun();// 101
    fun();//102
    fun();//103
    return 0;
}

普通全局变量

#include <stdio.h>
#include <stdlib.h>

void fun()
{    
    int a = 100;
    a++;
    printf("%d\n",a);
    printf("%p\n",&a);//函数结束后,释放空间,且会重复初始化


}
int main()
{
    fun();
    fun();
    fun();
    return 0;
}

总结:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值