【C语言第七章】用函数实现模块化程序设计(额外部分)

C语言学习日记(5)
7.9变量的存储方式和生存期
从变量的生存期来划分,可分为:
静态存储和动态存储

静态存储区:
全局变量都存放在静态存储区中,在程序开始时分配存储区,执行完毕释放,在执行过程中它们占据固定的存储单元。

动态存储区存放:
1.函数形式参数
2.自动变量
3.调用的现场保护和返回地址等
在这里插入图片描述
C的存储类型包括:auto(自动)、static(静态局部)、register(寄存器)、extern(外部)

auto(自动):调用时,系统分配存储空间,调用结束后自动释放。
程序中大多数变量都是自动变量,可省略关键字auto
在这里插入图片描述

static(静态局部):调用结束后不会消失且保留原值,占用存储单元不释放,保留为上次调用结束时的值。

#include<stdio.h>
int f(int a)
{
   
	  int b = 0;
	static int c = 3;  //静态局部变量,调用结束后,并不释放,保留当前值
	  //int c = 3;//自动变量时,结果全为7
	b += 1;
	c += 1;
	return a + b + c;
}
int main() {
   
	int f(int a);
	int a = 2, i;
	for (i = 0; i < 3; i++)
		printf("%d\n", f(a));  //循环调用方法
	return 0;
}

在这里插入图片描述
例题:求多个数阶乘

#include<stdio.h>
int fac(int n) {
   
	static int f = 1;
	f = f * n;
	return f;
}
int main() {
   
	int 
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值