C作用域
任何一种编程中,作用域是程序中定义的变量所存在的区域,超过该区域变量就不能被访问。C 语言中有三个地方可以声明变量:
- 在函数或块内部的局部变量
- 在所有函数外部的全局变量
- 在形式参数的函数参数定义中
局部变量
在某个函数或块的内部声明的变量称为局部变量。它们只能被该函数或该代码块内部的语句使用。局部变量在函数外部是不可知的。下面是使用局部变量的实例。在这里,所有的变量 a、b 和 c 是 main() 函数的局部变量。
1 #include <stdio.h> 2 3 int main () 4 { 5 /* 局部变量声明 */ 6 int a, b; 7 int c; 8 9 /* 实际初始化 */ 10 a = 10; 11 b = 20; 12 c = a + b; 13 14 printf ("value of a = %d, b = %d and c = %d\n", a, b, c); 15 16 return 0; 17 }
全局变量
全局变量是定义在函数外部,通常是在程序的顶部。全局变量在整个程序生命周期内都是有效的,在任意的函数内部能访问全局变量。
全局变量可以被任何函数访问。也就是说,全局变量在声明后整个程序中都是可用的。下面是使用全局变量和局部变量的实例:
1 #include <stdio.h> 2 3 /* 全局变量声明 */ 4 int g; 5 6 int main () 7 { 8 /* 局部变量声明 */ 9 int a, b; 10 11 /* 实际初始化 */ 12 a = 10; 13 b = 20; 14 g = a + b; 15 16 printf ("value of a = %d, b = %d and g = %d\n", a, b, g); 17 18 return 0; 19 }
在程序中,局部变量和全局变量的名称可以相同,但是在函数内,如果两个名字相同,会使用局部变量值,全局变量不会被使用。下面是一个实例:
在程序中,局部变量和全局变量的
1 #include <stdio.h> 2 3 /* 全局变量声明 */ 4 int g = 20; 5 6 int main () 7 { 8 /* 局部变量声明 */ 9 int g = 10; 10 11 printf ("value of g = %d\n", g); 12 13 return 0; 14 }
形式参数
函数的参数,形式参数,被当作该函数内的局部变量,如果与全局变量同名它们会优先使用。下面是一个实例:
1 #include <stdio.h> 2 3 /* 全局变量声明 */ 4 int a = 20; 5 6 int main () 7 { 8 /* 在主函数中的局部变量声明 */ 9 int a = 10; 10 int b = 20; 11 int c = 0; 12 int sum(int, int); 13 14 printf ("value of a in main() = %d\n", a); 15 c = sum( a, b); 16 printf ("value of c in main() = %d\n", c); 17 18 return 0; 19 } 20 21 /* 添加两个整数的函数 */ 22 int sum(int a, int b) 23 { 24 printf ("value of a in sum() = %d\n", a); 25 printf ("value of b in sum() = %d\n", b); 26 27 return a + b; 28 }
本文来自博客园,作者:Bytezero!,转载请注明原文链接:https://www.cnblogs.com/Bytezero/p/15072169.html