当前位置: 首页 > 编程语言 > C语言 > 正文

C语言基础教程(五)函数(8)

时间:2007-05-04 王大刚

3.函数作用范围

Turbo C2.0中每个函数都是独立的代码块,函数代码归该函数所有,除了对函数的调用以外,其它任何函数中的任何语句都不能访问它。例如使用跳转语句goto就不能从一个函数跳进其它函数内部。除非使用全程变量,否则一个函数内部定义的程序代码和数据,不会与另一个函数内的程序代码和数据相互影响。
Turbo C2.0中所有函数的作用域都处于同一嵌套程度,即不能在一个函数内再说明或定义另一个函数。
Turbo C2.0中一个函数对其它子函数的调用是全程的,即是函数在不同的文件中,也不必附加任何说明语句而被另一函数调用,也就是说一个函数对于整个程序都是可见的。
4.函数的变量作用域
在Turbo C2.0中,变量是可以在各个层次的子程序中加以说明,也就是说,在任何函数中,变量说明有只允许在一个函数体的开头处说明,而且允许变量的说明(包括初始化)跟在一个复合语句的左花括号的后面,直到配对的右花括号为止。它的作用域仅在这对花括号内,当程序执行到出花括号时,它将不复存在。当然,内层中的变量即使与外层中的变量名字相同,它们之间也是没有关系的。
例9.
#include<stdio.h>
int i=10;
int main()
{
int i=1;
printf("%d\t, i);
{
int i=2;
pritnf("%d\t", i);
{
extern i;
i+=1;
printf("%d\t", i);
}
printf("%d\t", ++i);
}
printf("%d\n", ++i);
return 0;
}
运行结果为
1 2 11 3 2
从程序运行的结果不难看出程序中各变量之间的关系,以及各个变量的作用域。