局部变量
定义在函数内部的变量称为局部变量,这些变量的作用域仅限于函数内部,函数执行完毕之后,这些变量就失去作用。举例说明,假设有如下一段代码:
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都从定义处生效,到本代码块的“}”处失效。