|
发表于 2020-10-9 21:15:01
|
显示全部楼层
new 是超出一般性质的作用域的申请内存的方法.
也就是new后,语言不管理你这个内存空间,而是你自己去管理.
除此之外,语言的特性会自动的帮你回收掉一些内存空间.
如
void fun()
{
int i; // 这里的i 的内存空间申请了
}
// 在外面就被释放了.
//这个就是所谓的作用域的生命周期, 也就是超出作用域会释放掉的内存空间.
作用域分为(不标准命名):
1.函数作用域,就是函数范围,跳出函数就释放掉
2.表达式作用域, 就是一个表达式申请,超出这个表达式就删掉的内存
3.程序作用域, 程序结束就释放掉的内存.
要注意的是,虽然有这些作用域限制,但是并不是非要用new才能传递变量.只要将内部范围的变量
复制到外部范围就能传递了.但是话说回来,数组是不能直接复制的,数组名传递的是他的地址,而用
这个访问的还是原来的空间,这就会出现问题.
|
|