以以下一段代码为例:
1 #include <stdio.h> 2 //以下代码是否能交换两个变量的值? 3 void swap(int a,int b); 4 5 int main() 6 { 7 int a=5; 8 int b=6; 9 10 swap(a,b); 11 12 printf("%d,%d",a,b); 13 14 return 0; 15 } 16 17 void swap(int a,int b) 18 { 19 int t=a; 20 a=b; 21 b=t; 22 // printf("%d,%d",a,b); 23 }
结果是5,6,并没有得到交换,因为main和swap是两个不同的块,swap内部做了交换,但是如果离开那么就失效了
1.本地变量是定义在块内的:
它可以是定义在函数的块内,也可以是语句的块内,也可以随便拉一对大括号来定义变量
2.程序进入这个块之前,其中的变量不存在,离开这个块,其中的变量就消失了
3.块外面定义的变量在里面仍然有效,块里面定义了和块外面同名的则会掩盖块外面的,不能在同一个块内定义同名的变量
{ int a=111; printf("a==%d",a); } printf("a==%d",a);