当前位置: 首页 > news >正文

C语言番外篇(5)-------------->作用域与生命周期

作用域与生命周期是非常重要的编程知识。本篇文章使用C语言讲述作用域与生命周期。

一、作用域

在程序设计中,变量并非总是有效的,可以使用的区域就是作用域。

1.1局部变量的作用域

在{}中的都是局部变量,只是作用大小不一样而已。我们可以简单地分为两种。为了方便理解,我们打个比方。将变量的作用域比作自行车。自己家的自行车,爷爷家的自行车。自己家的自行车自己可以使用,但是能够使用的人比较少:

比如这种:自己家的自行车(局部变量作用域范围小的)

#include <stdio.h>

int main()
{
	int i = 0;
	for (i = 0; i < 5; i++)
	{
		int a = 10;
		printf("a=%d\n",a);
	}
	printf("a=%d\n", a);//error!!!!!!!!!!!!!
	return 0;
}

运行结果以及结果解释:

爷爷家的自行车(局部变量作用域范围大的) (在main函数中的局部变量):

#include <stdio.h>

int main()
{
	int i = 0;
	int b = 20;
	for (i = 0; i < 1; i++)//for循环1次
	{
		b = 30;
		printf("b=%d\n", b);
	}
	printf("b=%d\n", b);
	return 0;
}

运行结果以及结果解释:

这里定义在主函数中,b是一个局部变量,作用域是主函数的{}中。但是在这里我们不能将其认定为全局变量的作用域。 

 1.2局部变量的作用域

局部变量的作用域好比共享自行车,人人都可以使用。

例如:

#include <stdio.h>

int c = 100;//定义全局变量

int main()
{
	int i = 0;
	c = 50;
	printf("c=%d\n", c);
	for (i = 0; i < 1; i++)//for循环1次
	{
		c = 25;
		printf("c=%d\n", c);
	}
	return 0;
}

运行结果以及结果解释:

二、生命周期

生命周期指的变量的创建(申请内存)到变量的销毁(内存的回收)的过程。

2.1局部变量的生命周期

例如:

#include <stdio.h>


int main()
{
	{
		int a = 10;
		printf("a=%d\n",a);
	}
	printf("a=%d\n", a);//error
	return 0;
}

运行结果以及结果解释:

2.2全局变量的生命周期

全局变量的生命周期是整个程序的生命周期,即main函数开始与结束之间。

例如:

#include <stdio.h>

int a = 100;
void test(void)
{
	printf("test->a=%d\n",a);
}

int main()
{
	test();
	printf("maint->a=%d\n", a);
	return 0;
	printf("after-return->a=%d\n", a);
}

运行结果以及结果解释:

相关文章:

  • 基于ANTLR4的大数据SQL编辑器解析引擎实践|得物技术
  • aws(学习笔记第三十一课) aws cdk深入学习(batch-arm64-instance-type)
  • 贪心算法一
  • python实现的生态模拟系统
  • 第5章:vuex
  • Linux部署java项目
  • NO.26十六届蓝桥杯备战|字符数组七道练习|islower|isupper|tolower|toupper|strstr(C++)
  • 支持多数据源的 MyBatis-Plus 实现
  • C语言基础之【指针】(下)
  • Python的那些事第四十二篇:Python的无人机监控环境监测系统研究
  • macos查询pip默认镜像地址
  • 基于Hadoop的热门旅游景点推荐数据分析与可视化系统(基于Django大数据技术的热门旅游景点数据分析与可视化)
  • 抽象类与普通类的核心区别
  • Leetcode 264-丑数/LCR 168/剑指 Offer 49
  • QT异步编程
  • 无显示器安装访问树莓派3B+
  • C语言基础系列【19】inline关键字
  • 鸿蒙开发:RelativeContainer 相对布局详解【全套华为认证学习资料分享(考试大纲、培训教材、实验手册等等)】
  • 能源行业标杆:信创系统在智能电网中的3个创新应用案例
  • com.android.tools.r8.CompilationFailedException: Compilation failed to complete
  • 金融监管总局等八部门:引导银行向小微企业贷款倾斜核销空间和资源,释放更多信贷资源
  • 上海黄浦推动建设金融科技集聚区,对创新主体最高扶持1亿元
  • 中外科研人员合作揭开固态电池短路成因
  • 太平人寿党委书记赵峰调任海南省政府党组成员
  • 保利、北京建工联合体45.45亿元竞得北京海淀区宅地,溢价率11.95%
  • 马上评|去年维修竣工的鼓楼,今年就“瀑布式落瓦”