C语言:内部变量,外部变量,局部变量,全局变量,动态存储变量,静态存储变量.2021-05-14

在一对{}内定义的变量,其定义域仅其下方且在该{}内的复合语句.

外部变量 又称为 全局变量

内部变量 又称为 局部变量

1.squarness

#include<stdio.h>

int area;//外部变量:函数之外的变量
main()
{
	int volume,length;//内部变量:函数之外的变量

	printf("input length,width,height=");
	scanf("%d",&length);
	
	squareness_volume(length);
}
	
int v;//该外部变量声明对本行以下起效果,包括函数内外
int squareness_volume(int l)
{  

	v=l*l*l;
	area=l*l*6;//该内部变量声明仅对本行以下且在本函数内起效果

	printf("volume:%d area:%d",v,area);
}

2.max min average

#include<stdio.h>

float max=0,min=0;//(static)静态存储变量程序开始时,由系统分配内存空间,直到程序结束

int main()
{
	int time=10,i;
	float score[10];
	float average(float array[],int t);

	printf("分别输入10个score:");
	for(i=0;i<time;i++)
	{
		scanf("%f",&score[i]);
	}
	printf("max=%f,min=%f,average=%f",max,min,average(score,time));


}
	
float average(float array[],int t)//形式参数属于局部变量
{	
	int i;//(auto)动态存储变量,需要时产生,用完销毁
	float aver,sum=array[0];
	max=min=array[0];
	
	for(i=1;i<t;i++)
	{
		if(array[i]>max)
			max=array[i];
		else if(array[i]<min)
			min=array[i];
		sum+=array[i];	
	}
	aver=sum/t;

	return aver;
}


运行:

3.一到五的阶乘(静态局部变量)

#include<stdio.h>

int fac(int n)
{
	static int f=1;//静态局部变量.作用域仅为改函数,但该函数运行结束后不销毁该变量
	f=f*n;
	return f;
}

int main()
{
	int i;
	for(i=1;i<=5;i++)
	{
		printf("%d!=%d ",i,fac(i));
	}

}
	

运行:

4.静态全局变量

file 1

#include<stdio.h>

static char a[]="静态全局变量";

file 2

#include<stdio.h>

extern char a;//外部存储变量声明,不创建新的存储空间

int main()
{
	printf("%s 不能被本程序文件外的程序调用\n",a);
}

start without debugging : build failed

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

用户的昵称

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值