C语言学习笔记[6]:初识变量的作用域和生命周期

作用域

通常来说,一段程序代码中所用到的名字并不总是有效、可用的

而限定这个名字的可用性的代码范围就是这个名字的作用域

局部变量的作用域

局部变量的作用域就是变量所在的局部范围

#include <stdio.h>

int main()
{
    {
    int a = 10;
    printf("%d\n", a);
    }
    printf("%d\n", a);//!未定义的标识符 "a"
    return 0;
}

大括号外的 printf 函数由于 a 的作用域不在这里,所以会报错

全局变量的作用域

全局变量的作用域就是整个工程

#include <stdio.h>

int g_val = 10;
int main()
{
    printf("1:%d\n", g_val);
    {
    printf("2:%d\n", g_val);
    }
    printf("3:%d\n", g_val);
    return 0;
}

由于全局变量的作用域是整个工程,所以三个 printf 都可以正常输出 10

倘若全局变量 g_val 定义在另一个 .c 文件中,只要声明了该变量,同样可以使用,毕竟全局变量的作用域是整个工程。

//test1.c
int g_val = 100;
//tset.c
#include <stdio.h>

//声明
extern int g_val;
int main()
{
    printf("1:%d\n", g_val);
    {
        printf("2:%d\n", g_val);
    }
    printf("3:%d\n", g_val);
    return 0;
}

 生命周期

变量的生命周期指的是,变量的创建到销毁之间的时间段。

局部变量的生命周期

进入局部范围,生命周期开始,出局部范围,生命周期结束

#include <stdio.h>

int main()
{
    {//生命开始
    int a = 10;
    printf("%d\n", a);
    }//生命结束
    return 0;
}

 全局变量的生命周期

就是整个程序的生命周期

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值