如果是指针呢?
void ClassA::method(){
ClassB *b = new ClassB();
}
当method()退出时b指向的空间会自动释放?
会自动释放,指针也是一样的。
局部变量的作用域是定义该变量的函数或定义该变量的复合语句。只在定义它的函数或复合语句范围内有效,只能在定义它的函数或复合语句内才能使用它们。局部变量的生存期是从函数被调用的时刻算起到函数返回调用处的时刻结束。
扩展资料:
局部变量的作用域说明:
1、主函数main()中定义的变量也只在主函数中有效,而不能因为在主函数中定义在整个文件或程序中有效。主函数也不能使用其他函数中定义的变量。因为主函数也是一个函数,它与其他函数是平行关系。这一点是与其他语言不同的,应予以注意。
2、不同函数中可以使用相同名字的变量,它们代表不同的对象,分配不同的单元,互不干扰。例如,上面在f1函数中定义了变量b和c,倘若在f2函数中也定义变量b和c,它们在内存中占不同的单元,互不干扰。
3、形式参数是属于被调函数的局部变量。例如上面f1函数中的形参a,也只在f1函数中有效,其他函数可以调用f1函数,但不能引用f1函数中的形参a。
4、在一个函数内部,可以在复合语句中定义变量,这些变量只在本复合语句中有效,这种复合语句也称为“分程序”或“程序块”。
参考资料来源:百度百科-局部变量
函数里的局部变量在函数退出后会不会自动释放?
会自动释放,指针也是一样的。局部变量的作用域是定义该变量的函数或定义该变量的复合语句。只在定义它的函数或复合语句范围内有效,只能在定义它的函数或复合语句内才能使用它们。局部变量的生存期是从函数被调用的时刻算起到函数返回调用处的时刻结束。
全局变量和局部变量有什么区别
它们的生命周期也有所不同。全局变量随主程序的启动与结束而存在,其生命期不受函数调用的影响。相比之下,局部变量仅在函数执行期间可见,函数执行完毕后,局部变量也随之消失。在使用方式上,全局变量可在程序的任意部分被访问和修改,而局部变量仅限于其定义的函数内部使用。操作系统和编译器通过内存分配...
c语言初学者,不是说局部变量会在函数结束时被释放吗,为什么这个程序没有...
你是怎么理解“释放”的?释放了那几个存储单元就不存在了?你的代码只说明函数f退出后,存放100和12的那8个内存单元暂时还没有被别的代码使用而已,并不能断定“没有被释放”。释放的意思是那几个存储单元不再由你的代码“霸占”了,而并不是“消失”了……
全局变量和局部变量的本质区别
3、生命期不同,全局变量的生命期和主程序一样,随程序的销毁而销毁,局部变量在函数内部或循环内部,随函数的退出或循环退出就不存在了。全局变量:所有的函数外部定义的变量,它的作用域是整个程序,也就是所有的源文件,包括.c和.h文件。局部变量:定义在函数体内部的变量,作用域仅限于函数体内部。
C语言问题:内存的分配方式有哪几种?
例如全局变量、静态变量等。2、栈上分配 在函数执行时,函数内的局部变量的存储单元在栈上创建,函数执行结束时这些存储单元自动释放。3、堆上分配 堆分配(又称动态内存分配)。程序在运行时用malloc或者new申请内存,程序员自己用free或者delete释放,动态内存的生存期由我们自己决定。
C语言局部变量问题?
局部变量的话,一般的定义就在局部里,如哪个函数内部,所以,每调用的时候都会先给它赋初值,分配内存再执行,等执行完毕,变量的内存将释放,那个局部变量自然就又不知道是多少去了,当你没有给变量赋初值的时候,那个初值是随机错误的一个数,所以一般在使用之前一定要先初始化。不然会出现不明的错误...
局部变量和全局变量的区别 局部变量和全局变量的区别是什么
关于全局变量的说明 1、全局变量从程序运行起即占据内存,在程序整个运行过程中可随时访问,程序退出时释放内存。与之对应的局部变量在进入语句块时获得内存,仅能由语句块内的语句访问,退出语句块时释放内存,不再有效。2、全局变量在程序员不指定初值的情况下自动初始化为零。3、在同一源文件中,允许...
c语言指针指向的局部变量释放?
函数完成只释放局部变量本身占用的空间,如果变量是指针变量,则不会释放指针指向的空间
全局变量和静态局部变量有什么区别
静态局部变量在函数调用结束后不自动释放,保留函数调用结束后的值;全局变量:在函数外定义的变量称为全局变量;全局变量在静态存储区分配存储单元,在程序运行期间都不释放,在文件中的函数均可调用该全局变量,其他文件内的函数调用全局变量,需加extern声明;静态全局变量:在函数外定义变量时,若加上...
关于c语言函数,函数里的数组在函数结束后是不是就释放了?
line数组会在函数执行结束后释放,因为它属于函数里的局部变量。所谓的释放不是说这个数组已经消失得无影无踪,而是说它现在所占据的空间可以由其他数据再次使用(即覆盖),我们不要再去访问这个line数组了,因为它的内容随时可变。