年年有"余"

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 1919|回复: 0

static对局部变量的影响

[复制链接]
  • TA的每日心情
    奋斗
    2022-12-13 21:26
  • 签到天数: 371 天

    [LV.9]以坛为家II

    发表于 2014-3-7 22:33:24 | 显示全部楼层 |阅读模式
    源文件:
    1. /*
    2. 1、在局部变量中,static第一个作用初始化为0;
    3. 2、第二个作用保持局部变量b的持久不被释放,变量被存储在静态区;
    4. */
    5. #include <stdio.h>
    6. void test();  // 函数声明;
    7. int main() {
    8.     test();  //a=1,b=1
    9.     test();  //a=1,b=2
    10.     test();  //a=1,b=3
    11.     // 重复调用函数三次;
    12.    
    13.     // b = 10;  // 此处不能调用b,局部变量有局部变量的特性,static也改变不了这一点;
    14.    
    15.     return 0;
    16. }
    17. void test() {
    18.     int a = 0;  // 定义一个局部变量a,如果不初始化为0,变量值随机;
    19.    
    20.     static int b;  // 定义一个static局部变量a,系统自动初始化为0,并保持变量直到程序结束才被释放;
    21.    
    22.     a++;  // a自加;
    23.    
    24.     b++;  // b自加;
    25.    
    26.     printf("a=%d, b=%d\n", a, b);  // 输出a、b的值;
    27.    
    28. }
    复制代码
    输出结果为:
    1. a=1, b=1
    2. a=1, b=2
    3. a=1, b=3
    复制代码




    相关帖子

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

    本版积分规则

    手机版|小黑屋|Archiver|iOS开发笔记 ( 湘ICP备14010846号 )

    GMT+8, 2024-4-29 18:10 , Processed in 0.046241 second(s), 23 queries .

    Powered by Discuz! X3.4

    Copyright © 2001-2021, Tencent Cloud.

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