C语言 局部变量
局部变量也称为内部变量,是在一个函数内部声明的变量,作用域只限于本函数内部。在函数内部可以合法引用,在该函数外面使用局部变量是非法的。例如:
int fun(int m,int n) /*m,n,max的作用域为main()函数*/
{
int max;
max=m>n?.m:n;
}
main()
{
int a,b; /*a,b的作用域为main()函数*/
scanf("%d%d",&a,&b);
printf("%d\n",fun(a.b));
}
从上例中可以看到,fun()函数中出现了三个变量:形参m,n和普通变量max,它们的作用域都仅限于fun()函数内部。同样,在main()函数内定义的变量作用域仅限于main()函数,并不因为它是main()函数而可以调用其他函数中的变量。因为C语言中所有的函数都是平行的。如在main()函数中 直接使用max()函数,编译系统会提示“变量未定义”的错误。
关于局部变量的作用域还要说明以下几点:
①因为在C语言中所有的函数地位是平行的,所以主函数main()中定义的内部变量,也只能在主函数中使用,其他函数不能使用。同样,主函数中也不能使用其他函数中定义的内部变量。
②形参变量也是局部变量,属于被调用函数,如上例中fun()函数中的形参m、n都是局部变量。同样的,实参变量则是调用函数的内部变量。
③允许在不同的函数中使用相同的变量名,它们代表不同的对象,分配不同的单元,互不干扰,也不会发生混淆。
④在复合语句中也可定义变量,其作用域只在复合语句范围内,例如:
点击加载更多评论>>