变量的分类

局部变量

在代码块内定义的变量是局部变量,它具有临时性,在退出代码块时自动释放掉。(代码块:包含在{}内的代码就叫代码块。)

#include <stdio.h>

int main(){
    int var=0;//局部变量
    fun(); 
    var++;
    printf("%d",var);//var=1 局部变量var不会收到fun函数的var影响         
    return 0;
}

void fun(){
    int var=20;//局部变量
    printf("%d",var);//var在fun()函数结束时自动释放掉
}

全局变量

在所有函数外定义的变量是全局变量,全局变量默认初始值为0,全局变量在整个程序运行结束时自动释放掉。

#include <stdio.h>
int var;//全局变量var默认值为0

void fun();

int main(){
    fun(); //var=20
    var++;//var=21
    printf("%d",var);//var=21 全局变量可以被所以函数调用         
    return 0;
}

void fun(){
    var=20;
    printf("%d",var);//var是全局变量在fun()函数结束时不会自动释放掉
}

//int var;
//如果在所有函数下定义全局函数 那将不会识别到变量var
//因为程序的执行从上往下执行,执行到main函数结束将会结束程序

局部变量的优先级高于全局变量。

#include <stdio.h>
int var=30;//全局变量

int main(){
    int var=0;//局部变量
    var++;//局部变量优先级高于全局变量,此时var++是局部变量var
    printf("%d",var);//var=1        
    return 0;
}

复合变量

在代码块内复合使用的变量叫复合变量,复合变量在复合语言中生效,复合语言结束时自动释放掉。

#include <stdio.h>

int main(){
    int i;
    {
        int i;//复合变量i在复合语言{}结束时自动释放掉
    }

    return 0;
}

变量的作用域

变量的作用域指变量的有效范围。

局部变量的作用域:只在它所在的代码块内有效。

全局变量的作用域:在整个程序的运行过程中有效。

#include <stdio.h>
int var;//全局变量var在整个程序的运行过程中有效

void fun();

int main(){
    fun();//21
    fun();//21var在fun()函数结束时会自动释放掉
    var++;
    printf("%d",var);//var=1 全局变量可以被所以函数调用         
    return 0;
}

void fun(){
    int var=20;局部变量var在fun函数内有效
    var++;
    printf("%d",var);
}

变量的生命周期

变量的生命周期是指变量从定义到被释放掉的时时间。

局部变量的生命周期:程序运行至代码块到退出代码块为局部变量的生命周期。

全局变量的生命周期:程序运行至结束为全局变量的生命周期。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值