任何编程的作用域是程序的一个区域,定义的变量可以存在于该区域,而超出该变量则不能访问。
local - 局部变量
global - 全局变量
formal - 参数变量
让我们了解什么是 local 和 global 变量以及 formal 参数。
在函数或块内声明的变量称为局部变量,以下示例显示了如何使用局部变量,在这里,所有变量a,b和c都是main()函数的局部变量。
#include <stdio.h> int main () { /* 局部变量声明 */ int a, b; int c; /* 实际初始化 */ a=10; b=20; c=a + b; printf ("value of a=%d, b=%d and c=%d\n", a, b, c); return 0; }
可以由任何函数访问。
#include <stdio.h> /* 全局变量声明 */ int g; int main () { /* 局部变量声明 */ int a, b; /* 实际初始化 */ a=10; b=20; g=a + b; printf ("value of a=%d, b=%d and g=%d\n", a, b, g); return 0; }
程序的局部变量和全局变量可以具有相同的名称,但是函数内局部变量的值将优先,这是一个示例-
#include <stdio.h> /* 全局变量声明 */ int g=20; int main () { /* 局部变量声明 */ int g=10; printf ("value of g=%d\n", g); return 0; }
编译并执行上述代码后,将产生以下输出-
value of g=10
形式参数在函数中被视为局部变量,它们优先于全局变量。以下是一个示例-
#include <stdio.h> /* 全局变量声明 */ int a=20; int main () { /* 主函数中的局部变量声明 */ int a=10; int b=20; int c=0; printf ("value of a in main()=%d\n", a); c=sum( a, b); printf ("value of c in main()=%d\n", c); return 0; } /* 两个整数相加的函数 */ int sum(int a, int b) { printf ("value of a in sum()=%d\n", a); printf ("value of b in sum()=%d\n", b); return a + b; }
编译并执行上述代码后,将产生以下输出-
value of a in main()=10 value of a in sum()=10 value of b in sum()=20 value of c in main()=30
定义局部变量后,系统不会对其进行初始化,您必须自己对其进行初始化。如下定义全局变量时,系统将自动初始化全局变量-
数据类型 | 初始默认值 |
---|---|
int | 0 |
char | '\0' |
float | 0 |
double | 0 |
point | NULL |
祝学习愉快!(内容编辑有误?请选中要编辑内容 -> 右键 -> 修改 -> 提交!)