学科分类
目录
C语言

局部变量

定义在函数内部的变量称为局部变量,这些变量的作用域仅限于函数内部,函数执行完毕之后,这些变量就失去作用。举例说明,假设有如下一段代码:

int fun()
{
  int a=10;    //func()函数中的局部变量
  return a;
}
int main()
{
  int a=5;    //main()函数中的局部变量
  int b=fun();
  printf("a=%d,b=%d\n",a,b);
  return 0;
}

在该段代码中,main()函数和fun()函数中都有一个变量a,这两个变量都是局部变量,main()函数中变量a的作用域为main()函数范围,fun()函数中变量a的作用域为从func()函数被调用处到调用结束。所以此段代码输出的结果为:a=5,b=10。

{}可以起到划分代码块的作用,假设要在某一个函数中使用同名的变量,可以用{}进行划分。比如在main()函数中定义了两个同名变量:

int main()
{
  //代码段1
  {
    int a=10;       //作用域在本代码块内,即它所属的{}范围
    printf("a=%d\n",a);
  }
  //代码段2
  {
    int a=5;        //作用域在本代码块内,即它所属的{}范围
    printf("a=%d\n",a);
  }
  return 0;
}

上述代码中,变量a定义了两次,但是每次都定义在由大括号划分的代码段中,因此此段程序可以正常运行,输出的结果为:a=10,a=5。每个代码段中的a都从定义处生效,到本代码块的“}”处失效。

点击此处
隐藏目录