局部变量/自动变量/栈区变量的特点
图中说到函数形参也是局部变量,那么函数声明呢?void fun(int a);中的a 这个变量呢? 其实这个a 是没有的,函数声明中不需要写函数变量的名字a,也就是 只需要:void fun(int );
所以,函数不能返回局部变量地址
这个b的作用范围是从定义的这行开始到{}的结尾。b的作用范围可不是整个{}的范围。
对于同一作用域内,变量不能重名可以写为:同一层{}内,变量不能重名。
不同层的{}可以重名。
最后,作用域无关的这种情况—— 类似 主函数中定义了一个变量a,又在自定义里面又定义了一个变量a。
上面那个a的地址可能是ox1o,下面a的地址就可能是ox80等等,这种情况下,名字是完全可以重复的。因为上面的作用域一完事,就释放了。