重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
形参只是实参的一个副本,即拷贝,它们不能公用存储单元。
创新互联建站是一家集网站建设,郏县企业网站建设,郏县品牌网站建设,网站定制,郏县网站建设报价,网络营销,网络优化,郏县网站推广为一体的创新建站企业,帮助传统企业提升企业形象加强企业竞争力。可充分满足这一群体相比中小企业更为丰富、高端、多元的互联网需求。同时我们时刻保持专业、时尚、前沿,时刻以成就客户成长自我,坚持不断学习、思考、沉淀、净化自己,让我们为更多的企业打造出实用型网站。
参数之间的传递分为数值传递与地址传递,如果是数值传递时,各自占用不同的内存单元,如果是地址传递时,共用同一段内存单元。
函数调用时,主调函数把实参的值传送给被调函数的形参从而实现主调函数向被调函数的数据传送。 形参变量只有在被调用时才分配内存单元,在调用结束时,即刻释放所分配的回内存单元。
形参只是实参的一个副本,即拷贝,它们不能公用存储单元,不占相同的空间。
扩展资料:
函数调用过程
1、函数的形参列于函数声明中,在函数定义的函数体内使用。在未出现函数调用时,形参不占内存中的存储单元;当函数调用时,形参(任何种类的)是一类将被填充的空白或是占位符。
2、将实参的值传递给形参。当函数被调用时,实参列在函数名后面的括号里。执行函数调用时,实参被传递给形参。
3、在执行函数期间,由于形参已经有值,可以利用其进行相关运算。
4、通过return语句将函数值带回到主调函数。
5、调用结束,形参单元被释放。实参单元仍保留并维持原值(值传递)。
参考资料来源:百度百科-形式参数
参考资料来源:百度百科-实际参数
是的,形参和实参是两个不同的存储单元,都占用内存空间,当函数调用结束后,形参的内存空间也就会被释放掉了。
ShowMenu是一个函数名,可以看到他的值是一个地址。
ShowMenu是对函数取地址,指向和ShowMenu同样的地址。
可以看出,ShowMenu是占用一个字节的,而作为指针ShowMenu却占用四个字节。
所以说,函数名占用空间的。
在程序运行时,一个函数占用一段连续的内存。当调用一个函数时,实际上是跳转到函数的入口地址,执行函数体的代码,完成后返回。
函数指针指向一个函数的入口地址,也就是函数存储空间的首地址。
在C语言中,数组名代表数组的首地址,同样函数名代表了函数的首地址,因此在赋值时,直接将函数指针指向函数名就行了。
因此函数指针调用vs直接调用,占用的存储空间都是一样的。相当于数组指针和数组名的关系,指向的都是同一个数组。
局部变量存在函数体里面,比如转换成8086汇编(示意):
func: 定义变量
push ax
pop ax
ret
main: call func
满意请采纳,谢谢!
函数名是 函数所占内存空间 的首地址,当然也占内存空间啦!跟数组名一样
(1)在函数中申明的变量,是局部量。
(2)函数没有被调用时,不给局部量分配空间。此时不占用内存空间。
(3)函数 局部量的生命周期是从调用开始到调用结束。
只有在调用函数时,才临时分配空间,函数调用并执行完毕时,空间就会被释放。
函数调用和执行中,无论是否使用此变量,它都要占用内存空间,有地址。
(4)更精确地说,同变量所在的域(就是一对花括号之间的区域)有关,生命周期从进域开始到出域结束。