局部变量是在函数内部定义的变量,它的作用域也仅限于函数内部,出了函数就不能使用了,我们将这样的变量称为局部变量(Local Variable)。函数的形参也是局部变量,也只能在函数内部使用。请看下面的例子:
#include <stdio.h>
int sum(int m, int n)
{
int i, sum=0;
//m、n、i、sum 都是局部变量,只能在 sum() 内部使用
for(i=m; i<=n; i++)
{
sum+=i;
}
return sum;
}
int main()
{
int begin = 5, end = 86;
int result = sum(begin, end);
//begin、end、result 也都是局部变量,只能在 main() 内部使用
printf("The sum from %d to %d is %d\n", begin, end, result);
return 0;
}
m、n、i、sum 是局部变量,只能在 sum() 内部使用;begin、end、result 也是局部变量,只能在 main() 内部使用,不能在sum函数中使用。
对局部变量的两点说明:
- main() 也是一个函数,在 main() 内部定义的变量也是局部变量,只能在 main() 函数内部使用。
- 形参也是局部变量,将实参传递给形参的过程,就是用实参给局部变量赋值的过程,它和a=b; sum=m+n;这样的赋值没有什么区别。
来看一个例子
int sum(int a,int b)
{
return a+b;
}
vector<int> res;
int main()
{
int num1;
int nums2;
return sum(nums1,nums2);
}
一个函数,除了通过传递形参的方式,否则他不能访问函数之外的任何变量!!!