C语言入门(5)变量的作用域以及生命周期的概念

目录

一,变量的作用域

二,变量的生命周期


这一章,我们来大概熟悉一下变量的作用域和生命周期。

一,变量的作用域

概念:在程序中的哪一个地方能用在哪个地方不能用。(由此可以衍生出局部变量和全局变量)

①局部变量:局部变量的作用域相对于全局变量的作用域是很小的,局部变量的作用域只在定义了它的花括号内可以使用({}),如下图:整型变量c的作用域只在while循环内可用(淡蓝框),而出了这个while循环在下面就打印不出来。整型变量b是定义在主函数里面的,所以它的作用域就是从它定义的地方往下一直到函数结束都可以使用(深蓝框)。

②全局变量:全局变量定义在花括号({})以外,作用域是从它定义的地方开始往下都可以使用,下图中整型a就是一个全局变量,全局变量在定义时如果不赋初始值的话,系统会默认初始值位零,全局变量的生命周期是从程序开始到程序结束。

二,变量的生命周期

概念:从创建到死亡的时间

①自动变量(auto):函数里面定义的局部变量,离开作用域之后自动销毁,默认不加auto表示自动变量

int num;

②寄存器变量(static):生命周期:从程序启动到程序结束

特点:第一次运算的结果将被第二次调用中代替初始值由此循环直至程序结束。

#include <stdio.h>

void fn(void)
{
    int n = 10;

    printf("n=%d\n", n);
    n++;
    printf("n++=%d\n", n);
}

void fn_static(void)
{
    static int n = 10;

    printf("static n=%d\n", n);
    n++;
    printf("n++=%d\n", n);
}

int main(void)
{
    fn();
    printf("--------------------\n");
    fn_static();
    printf("--------------------\n");
    fn();
    printf("--------------------\n");
    fn_static();

    return 0;
}

运行结果如下:

 ③寄存器变量(register):寄存器寄存数量有限,且其作用不明显。直接跳过.....

④外部变量(extern):在一个源文件定义一个变量,然后将这个文件所储存的量放到同一个项目的另一个源文件很使用。

这一章到此就结束了,如果有什么地方编写的有问题可以评论区提出!谢谢!!

下一章预告:C语言运算符和表达式

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

王司徒搞比利

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值