05.C语言学习【零基础版】@CHX------块作用域和文件作用域


一.程序块【复合语句】

①程序块:C语言中成对大括号构成的代码,也叫复合语句

#include <stdio.h> 
void test()
{
	printf("test\n");
}

int main()
{
	int a = 1;
	for (a = 1; a < 15; a++)
	{
		//for循环也是一个程序块
	}
	return 0;
}

②以上代码中的程序块有三个:

①void test()

{

}

②int main()

{

}

③for循环
 


二.作用域

①定义:变量生效的范围

②分类:C语言中变量作用域有两种:块作用域和文件作用域

三.块作用域

①在程序块中声明的变量,只在该程序块中通用,其他区域都无效,这样的作用域称为块作用域,一般针对局部变量

②代码:

代码1:正常输出25
int main()
{
	{
		int a = 25;
		printf("%d\n", a);
	}
	return 0;
}
代码2:无法正常输出
int main()
{
	{
		int a = 25;
		printf("%d\n", a);
	}
	printf("%d\n", a);//错误,变量a无法在大括号外部使用
	return 0;
}

运行结果:

 ③局部优先:

代码:

int main()
{
	int a = 35;
	{
		int a = 25;
		printf("%d\n", a);
	}
	printf("%d\n", a);
	return 0;
}

运行结果:

每个作用域会优先使用当前作用域声明的变量

④for循环


代码1:
int main()
{
	for (int i = 0; i < 10; i++)
		printf("%d\n", i);
	
	return 0;
}
代码2:报错
int main()
{
	for (int i = 0; i < 10; i++)
		printf("%d\n", i);
	
    printf("%d\n", i);
    return 0;
}

运行结果:

 


四.文件作用域

①在函数的外部声明变量(全局变量),从声明位置到文件全部结束都有效,全局变量具有文件作用域

代码1:
void test()
{
	printf("%d\n", i);
}
int i = 17;
int main()
{
	printf("%d\n", i);
	return 0;
}
代码2:
int i = 17;
int main()
{
	printf("%d\n", i);
	return 0;
}

运行结果:

i=17代码1中的void test()不可用

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值