为什么变量调用产生副本

怎样理解“局部作用域中的静态变量,不会随着每次函数调用而产生副本”?

1、局部作用于指的是只有某几个基本块中才可以产生作用的变量,比如for(int i=0;;),这里面的i就是局部变量,在for循环里面才有作用,for循环外面内存会被回收
2、静态变量,在程序执行前系统就为之静态分配(也即在运行时中不再改变分配情况)存储空间的一类变量
3、所以,函数中的局部变量每一次调用都会分配一次内存,函数结束内存释放,但是如果这个局部变量同时是静态便利那个,智慧分配一次存储空间,请函数执行结束不会释放,只有当这个那个程序结束才会释放内存

静态变量保存在全局数据区而不是保存在堆栈上