设为首页收藏本站 |天气与日历| 2025-04-20 星期日 06:24:00 乙巳(蛇)年 三月廿三 卯时 谷雨
     
切换到窄版

私人站点

 找回密码
 立即注册
搜索
查看: 126|回复: 0

静态(static)局部变量

[复制链接]

954

主题

954

帖子

3875

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
3875
发表于 2021-12-7 12:44:53 | 显示全部楼层 |阅读模式
l static局部变量的作用域也是在定义的函数内有效
l static局部变量的生命周期和程序运行周期一样,同时staitc局部变量的值只初始化一次,但可以赋值多次
l static局部变量若未赋以初值,则由系统自动赋值:数值型变量自动赋初值0,字符型变量赋空字符

#include <stdio.h>

void fun1()
{
        int i = 0;
        i++;
        printf("i = %d\n", i);
}

void fun2()
{
        //静态局部变量,没有赋值,系统赋值为0,而且只会初始化一次
        static int a;
        a++;
        printf("a = %d\n", a);
}

int main(void)
{
        fun1();
        fun1();
        fun2();
        fun2();

        return 0;
}


类型
作用域
生命周期

auto变量
一对{}内
当前函数

static局部变量
一对{}内
整个程序运行期

extern变量
整个程序
整个程序运行期

static全局变量
当前文件
整个程序运行期

extern函数
整个程序
整个程序运行期

static函数
当前文件
整个程序运行期

register变量
一对{}内
当前函数

全局变量
整个程序       
整个程序运行期

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|编程站点 ( 冀ICP备2023028127号-2 )|友链申请|

GMT+8, 2025-4-20 06:24 , Processed in 0.082957 second(s), 22 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表