局部、全局位于何处
程序的局部变量在栈内分配存储空间,如果该变量在函数中多次被调用,每次变量在栈上的位置也不一定相同。局部变量也可以在堆上动态分配,但是记得使用完这个堆空间后要释放之。
静态局部变量(static)在静态存储区内分配存储单元。在程序整个运行期间都不释放,但是对于其他函数无法访问。
全局变量在静态存储区,程序开始执行时给全局变量分配存储区,程序执行完毕释放。
动态申请数据存在于堆区。
局部、全局变量重名
在函数内引用这个变量时,会用到同名的局部变量,而不会用到全局变量。
对于有些编译器而言,在同一个函数内可以定义多个同名的局部变量,比如在两个循环体内都定义一个同名的局部变量,而那个局部变量的作用域就在那个循环体内。