在C语言中,函数的形参和实参可以占同一个存储单元,也可以占不同的存储单元吧?

2024-11-23 23:36:56
推荐回答(2个)
回答1:

形参只是实参的一个副本,即拷贝,它们不能公用存储单元。

参数之间的传递分为数值传递与地址传递,如果是数值传递时,各自占用不同的内存单元,如果是地址传递时,共用同一段内存单元。

函数调用时,主调函数把实参的值传送给被调函数的形参从而实现主调函数向被调函数的数据传送。 形参变量只有在被调用时才分配内存单元,在调用结束时,即刻释放所分配的回内存单元。

形参只是实参的一个副本,即拷贝,它们不能公用存储单元,不占相同的空间。

扩展资料:

函数调用过程

1、函数的形参列于函数声明中,在函数定义的函数体内使用。在未出现函数调用时,形参不占内存中的存储单元;当函数调用时,形参(任何种类的)是一类将被填充的空白或是占位符。

2、将实参的值传递给形参。当函数被调用时,实参列在函数名后面的括号里。执行函数调用时,实参被传递给形参。

3、在执行函数期间,由于形参已经有值,可以利用其进行相关运算。

4、通过return语句将函数值带回到主调函数。

5、调用结束,形参单元被释放。实参单元仍保留并维持原值(值传递)。 

参考资料来源:百度百科-形式参数

参考资料来源:百度百科-实际参数

回答2:

形参只是实参的一个副本,即拷贝,它们不能公用存储单元。
如果传入的是指针,那么形参就是实参的一个指针拷贝。此时,形参指针和实参指针指向同一块内存区域,虽如此,但是,不能说它们本身占同一个存储单元。