1、首先,我们可以在函数外面定义变量,就是全局变量。
网站建设哪家好,找创新互联!专注于网页设计、网站建设、微信开发、微信小程序定制开发、集团企业网站建设等服务项目。为回馈新老客户创新互联还提供了法库免费建站欢迎大家使用!
2、局部变量可以与全局变量同样命名。
3、但是优先级是局部变量优先。
4、但是局部变量的生命周期是整个结构内。
5、全局变量是整个程序结束,才释放。
6、我们也可以为变量加上修饰符。
分析:全局变量作为C语言的一个知识点,虽然我们都了解它的特点,但在实际教学过程中应用得并不是很多。由于全局变量的作用域是从定义变量开始直到程序结束,而对于编写有多个返回值的C语言函数,我们可以考虑把要返回的多个值定义成全局变量。当函数被调用时,全局变量被更改,我们再把更改后的全局变量值应用于主调函数中。函数被调用后被更改后的全局变量值即为函数的数个返回值。下面以一个实例演示该方法的应用。
实例:编写函数求3个数中的最大值与最小值。
方法:把最大值、最小值分别定义成2个全局变量max、min,在用户自定义函数中把求出来的最大值与最小值分别赋给全局变量max、min。函数调用完毕后全局变量的max、min值即保存了函数要求返回的值。程序参考代码如下:
#include
"stdio.h"
#include
"conio.h"
int
max,min;/*定义两个全局变量用于保存函数返回值*/
void
max_min(int
a,int
b,int
c)
/*定义求最大最小值的函数*/
{max=min=a;
/*初始化最大最小值*/
if(max
if(max
if(minb)min=b;
if(minc)min=c;
}
main()
{int
x,y,z;
printf("
请输入3个整数:\n");
scanf("%d,%d,%d",x,y,z);
max_min(x,y,z)
/*调用求最大值与最小值的函数*/
printf("三个数中的最大值为:%d;最小值为:%d",max,min);/*输出最大值与最小值*/
getch();
}
只要把定义变量的语句放在函数的外面。这样定义的变量就是全局变量。全局变量有默认的初始值为0, 全局变量对在它起作用范围内的每一个函数都可以生效。
1、记住一条就够了:在函数之外定义的变量就是全局变量。用static修饰的变量可以是全局的,也可以是局部的,所以说“用static修饰的变量是全局变量”是错误的。用static修饰的变量的生命周期与全局变量一样,但可见性仍分全局和局部。 2、全局变量在整个c文件中都能使用,而局部变量在其作用域内才能使用,举个例子: int f = 7;// 这个是全局变量int myadd(int a, int b){int c = a + b;// c是局部变量,只能在myadd中使用return c;}int main(void){printf("%d\n", c);// 因为c是myadd中定义的局部变量,这里会报错。printf("%d\n", f);// f是全局变量,这句是正确的。}