鱼C论坛

 找回密码
 立即注册
查看: 1313|回复: 0

[作品展示] S1E33:生存期和存储类型

[复制链接]
发表于 2023-11-15 22:58:32 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
#include <stdio.h>
//鱼C论坛——BaysideLizard写于2023年11月15日
/*C语言的变量拥有两种生存期:
--静态存储期(static storage duration)
--自动存储期(automatic storage duration)

具有文件作用域的变量 和 函数属于静态存储期。
一直占据内存,直到程序关闭才释放。

代码块作用域的变量一般属于自动存储期。
在代码块结束时将自动释放。
*/

void fun(void);

int main()
{
    /*register*/ int i = 100;
    //寄存器变量不能取地址。
    printf("Addr of i:%p\n",&i);

    for(int i = 0;i < 10;i++)
    {
        fun();
    }

    return 0;
}

void fun(void)
{
    static int count = 0;
    //静态局部变量,函数调用结束count不被释放。

    printf("count = %d\n",count);

    count++;
}
/*C语言提供了5种不同的存储类型
--auto自动变量(代码块中声明的变量默认为auto)
--register寄存器变量(不能取地址)
--static静态局部变量,也默认初始化为0。
--extern关键字用于告诉编译器这个变量或函数在别的地方已经定义过了。
--typedef用于为数据类型定义一个别名。
*/








运行结果:
Addr of i:000000000061FE18
count = 0
count = 1
count = 2
count = 3
count = 4
count = 5
count = 6
count = 7
count = 8
count = 9

Process returned 0 (0x0)   execution time : 0.044 s
Press any key to continue.








在FishC学C的第十六天
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

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

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-2-3 06:54

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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