66问答网
所有问题
当前搜索:
局部变量在函数结束时释放
c语言初学者,不是说
局部变量
会
在函数结束时
被
释放
吗,为什么这个程序没有...
答:
你是怎么理解“
释放
”的?释放了那几个存储单元就不存在了?你的代码只说明
函数
f退出后,存放100和12的那8个内存单元暂时还没有被别的代码使用而已,并不能断定“没有被释放”。释放的意思是那几个存储单元不再由你的代码“霸占”了,而并不是“消失”了……
c语言中
函数
调用
结束
后,函数内定义的静态
变量
所占用的空间被
释放
这句...
答:
不正确,
函数
内的静态
变量在
该函数调用
结束
后,且该函数所在的模块没有被
释放
的情况下,这个静态变量值为上次函数调用后的值。这样说比较抽象。举例说明一下:void AA(){ static int s_iCount; //C语言默认初始化0值 s_iCount++; //每调用AA()一次,s_iCount会自加一次 printf("%d\n", ...
在C语言中,带有形参的
函数
被调用后,那形参地址中的值是否会被
释放
答:
调用
结束
后会
释放
,因为形参是临时分配空间,调用结束后,分配的空间就会释放,当然里面的值也会释放掉,不存在了。
C++
函数
执行完后内存
释放
问题
答:
执行
完
后
函数
的
变量
会
释放
,函数体(也就是函数代码)不会释放,一直在代码段中,以后要调用
的时候
还可以进行调用。返回的函数值会放在你定义好的变量中,如果你没有接收返回值,那么该返回值会被丢弃。
关于C语言中auto和register的问题
答:
1、auto变量:函数中的
局部变量
,如不专门声明为static存储类别,都是动态分配存储空间的,数据存储在动态存储区。在调用该
函数时
系统会给它们分配存储空间,
在函数
调用
结束时
就自动
释放
这些存储空间。这类局部变量称为自动变量。自动变量用关键字auto作存储类别的声明。如:int f(int a){ auto int b,c...
在c语言中,只有在使用时才占用内存单元的
变量
,其存储类型是( )。_百度...
答:
【答案】:C auto:函数中的
局部变量
,动态地分配存储空间,数据存储在动态存储区中,在调用该
函数时
系统会给它们分配存储空间,
在函数
调用
结束时
就自动
释放
这些存储空问。register:为了提高效率,C语言允许将局部变量的值放在cPU中的寄存器中,这种变量叫“寄存器变量”,只有局部自动变量和形式参数可以作为...
C语言 子
函数局部变量
的
释放
问题!
答:
p最开始赋值为NULL,可以把他拿到
函数
test中又被重新赋值为指向
变量
a,而指针作为函数参数
的时候
是直接改变内存中他指向那个位置的值,你说的a确实被
释放
了(这个可以在主函数中test(&p);下面调用一次a,会报错说a没定义,说明a已经被释放了),但是赋值给指针p的那段地址还在那,并且那个地址里面存放...
函数结束
后,函数所占空间会自动销毁。那下面代码为什么还能得到
局部
...
答:
所谓的自动销毁是指写开禁,比如你这个程序运行时用到了int *p,这个p在电脑的内存里就占了一个位置,你在电脑上再运行其它程序
的时候
,就不能把那个位置分配给其它程序使用了。当你
函数结束
后,这个变量自动销毁了,也就是允许其它程序得到这个
变量在
内存中的位置了,但是这个位置的数据并没有改变,...
C语言中,
局部函数
中定义了一个char指针类型的
变量
,并初始化赋值,能将该...
答:
char* charTest(){ char p[] = "hello";return p;} char* p = charTest();调用玩char p[]被
释放
因为函数中的
局部变量在函数
调用
结束
后就会被释放;这句话是对的,局部变量超出其作用域后就会被释放掉 所以如果你在函数内部定义一个指针,并申请了空间;这句不怎么对,因为只查动态申请的...
c语言程序形参在return时已经被销毁,为什么还能传回值?
答:
楼主关于“
局部变量在函数
返回时就销毁”的观点是正确的。至于函数为什么还会传回值,是因为在执行return语句时,系统会自动创建一个临时变量(这个变量的存储地址是系统自动分配的,我们无法预知),并把即将被
释放
的局部变量s的值赋值给这个临时变量。return语句执行完成之后,函数生命周期
结束
,局部变量s也...
<涓婁竴椤
1
2
3
4
5
6
7
8
9
10
涓嬩竴椤
灏鹃〉
其他人还搜
形式参数是局部变量吗
局部变量
静态局部变量
函数调用可以作为一个函数的形参
外部变量
实参可以是常量 变量或表达式
变量
函数
函数形参