全局变量使变量声明具有通用性。程序中任何位置的任何函数都可以访问到全局变量。以下代码显示了如何声明和使用全局变量。全局变量age
和float
受两个函数的影响。
示例代码
#include <stdio.h>
void half(void);
void twice(void);
int age;
float feet;
int main()
{
printf("你今年多大了?: ");
scanf("%d", &age);
printf("你有多高了(cm)?: ");
scanf("%f", &feet);
printf("你今年 %d 岁了,身高为 %.1f cm.
",
age, feet);
half();
twice();
printf("但你不是真的 %d 岁或是真的有 %.1f cm 的身高.
", age, feet);
system("pause");
return(0);
}
void half(void)
{
float a, h;
a = (float)age / 2.0;
printf("你的年龄是一半是 %.1f.
", a);
h = feet / 2.0;
printf("你身高的一半是 %.1f.
", h);
}
void twice(void)
{
age *= 2;
printf("你的年龄是两倍是: %d.
", age);
feet *= 2;
printf("你的身高是两倍 %.1f
", feet);
}
执行上面示例代码,得到以下结果:
你今年多大了?: 23
你有多高了(cm)?: 178
你今年 23 岁了,身高为 178.0 cm.
你的年龄是一半是 11.5.
你身高的一半是 89.0.
你的年龄是两倍是: 46.
你的身高是两倍 356.0
但你不是真的 46 岁或是真的有 356.0 cm 的身高.
代码声明了全局int
类型变量age
,和float
类型变量feet
。这些是全局变量,因为它们是在任何函数之外声明的。变量可在每个函数中使用。
可以在整个代码中访问它们的值。即使在two()
函数中更改了这些值,main()
函数也会使用更改后的新值。