在《C语言形参和实参的区别》中提到,形参变量要等到函数被调用时才分配内存,调用结束后立即释放内存。这说明形参变量的作用域非常有限,只能在函数内部使用,离开该函数就无效了。所谓作用域(Scope),就是变量的有效范围。
不仅对于形参变量,C语言中所有的变量都有自己的作用域。决定变量作用域的是变量的定义位置。
局部变量
定义在函数内部的变量称为局部变量(Local Variable),它的作用域仅限于函数内部, 离开该函数后就是无效的,再使用就会报错。例如:
- int f1(int a){
- int b,c; //a,b,c仅在函数f1()内有效
- return a+b+c;
- }
- int main(){
- int m,n; //m,n仅在函数main()内有效
- return 0;
- }
几点说明:
1) 在 main 函数中定义的变量也是局部变量,只能在 main 函数