admin 管理员组文章数量: 887021
c语言中 全局变量是不在任何函数之内,全局变量
可以声明全局变量以在函数之间共享数据。全局变量不在任何函数之内,全局变量可在任何地方访问。
示例代码
#include
int count = 0; // 第3行,声明一个全局变量
// 声明函数
void test1(void);
void test2(void);
int main(void)
{
int count = 0; // 第11行,它覆盖了全局count变量
for (; count < 5; ++count)
{
test1();
test2();
}
system("pause");
return 0;
}
// test1函数使用全局变量
void test1(void)
{
printf("test1 count = %d\n", ++count);
}
// test2函数使用全局变量
void test2(void)
{
static int count; // 第三个变量,它隐藏了全局count变量数据
printf("test2 count = %d\n", ++count);
}
执行上面示例代码,得到以下结果:
test1 count = 1
test2 count = 1
test1 count = 2
test2 count = 2
test1 count = 3
test2 count = 3
test1 count = 4
test2 count = 4
test1 count = 5
test2 count = 5
在上面代码中,全局变量count定义如下:
int count = 0; // 第3行,声明一个全局变量
因为它是全局的,所以如果不初始化它将默认初始化为0。第二个变量count是在main()中声明的自动变量:
int count = 0; // 第11行,它覆盖了全局count变量
因为它与全局变量具有相同的名称,所以无法从main()访问全局变量count。局部变量count被隐藏了。第三个变量是在函数test2()中声明的静态变量count:
static int count; // 第三个变量,它隐藏了全局count变量数据
因为这是一个静态变量,所以默认情况下它将初始化为0。
此变量隐藏同名的全局变量count,因此在test2()中只能访问静态变量count。test1()函数使用全局变量count。main()和test2()函数使用局部版本的变量:count。
本文标签: c语言中 全局变量是不在任何函数之内 全局变量
版权声明:本文标题:c语言中 全局变量是不在任何函数之内,全局变量 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.freenas.com.cn/free/1698299207h292081.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论