我想知道是否有可能删除,即从使用中删除一个C变量,例如,一旦变量被使用一次?
我前段时间正在反思这个问题,我脑子里浮现出一个问题.
C有很多数据类型,我们可以用简单的代码创建一个数据类型的变量,比如整数
int i;
一旦我们以这种方式创建了变量,如果我们在将来使用中不需要它,我们如何"删除"它?
我在网上搜索,但没有找到任何执行此操作的C命令.通过"k被删除",我的意思是"k已经不复存在".我的意思是,一旦我们不需要变量,它就是一种浪费,应该被删除.
C确实提供了该free()功能,但它仅适用于使用calloc(), malloc()或分配的内存realloc().
那么int,一旦变量被使用,如何删除一个变量呢?
Oli*_*rth 15
你没有.一旦超出范围,对象的生命周期就会结束(它被称为自动对象,因为它会被自动清除).
例如
void foo() {
int j = 3;
while (blah) {
int i = 5;
}
// i no longer exists
}
// j no longer exists
Run Code Online (Sandbox Code Playgroud)
在C中,有一个对象的存储持续时间的概念,它决定了它的生命周期:
free()除了分配的存储,语言运行时将负责回收内存(例如,减少堆栈指针以丢弃调用帧,这'释放'自动存储).