局部变量/自动变量/栈区变量的特点

图中说到函数形参也是局部变量,那么函数声明呢?void fun(int a);中的a 这个变量呢? 其实这个a 是没有的,函数声明中不需要写函数变量的名字a,也就是 只需要:void fun(int );

所以,函数不能返回局部变量地址

这个b的作用范围是从定义的这行开始到{}的结尾。b的作用范围可不是整个{}的范围。

对于同一作用域内,变量不能重名可以写为:同一层{}内,变量不能重名。

不同层的{}可以重名。

最后,作用域无关的这种情况——  类似 主函数中定义了一个变量a,又在自定义里面又定义了一个变量a。

上面那个a的地址可能是ox1o,下面a的地址就可能是ox80等等,这种情况下,名字是完全可以重复的。因为上面的作用域一完事,就释放了。

原文地址:https://www.cnblogs.com/dabing0983/p/10566393.html