当前位置:首页 » 编程软件 » 程序编译时形参分配空间吗

程序编译时形参分配空间吗

发布时间: 2022-09-27 11:48:10

c语言 变量在定义时就会分配空间么,那这样的话定义函数时形参怎么不是,难道说形参不是定义而是声明,

定义的时候就会分配 不过分配和释放的周期不同
比如全局变量,程序开始时就分配,只要程序不退出,空间就不会被释放
局部变量,函数调用时分配,函数退出时释放
形参同样要分配空间的,除非是C++的引用形参。
你可以试试调用一个函数时,打印形参和实参的地址,是不一样的

java中的形参是不是一定义就立刻分配了内存空间。

形参是肯定基本上不会占用内存,它只是一个空壳子,但调用的时候用实参去给他赋值同时要实例化,不实例化是不能调用的,而实例化就是一个分配空间的,不就可以说明形参是不被分配内存的。
当然类成员,再用关键字static的时候就已经分配了内存。

㈢ 函数声明中的形式参数会被分配内存空间吗

会。形参也是局部变量,会分配栈空间。函数运行结束后,使用过的栈空间无意义

㈣ 实参和形参都需要占用存储单元么

实参和形参各占用独立的存储单元。

实参和形参是各占独立存储空间,函数调用过程中,实参向形参拷贝复制值。实参是个变量,形参也是个变量。

如果占用同一片空间的话,编译时候就不存在实参形参类型不匹配的报错。参数传递中,形参值的改变不影响实参的值。


(4)程序编译时形参分配空间吗扩展阅读

形参和实参的区别

1、形参变量只有在被调用时才分配内存单元,在调用结束时,即刻释放所分配的内存单元。因此,形参只有在函数内部有效。函数调用结束返回主调函数后则不能再使用该形参变量。

2、实参可以是常量、变量、表达式、函数等,无论实参是何种类型的量,在进行函数调用时,它们都必须具有确定的值,以便把这些值传送给形参。因此应预先用赋值,输入等办法使实参获得确定值。

3、实参和形参在数量上,类型上,顺序上应严格一致,否则会发生“类型不匹配”的错误。

4、函数调用中发生的数据传送是单向的。即只能把实参的值传送给形参,而不能把形参的值反向地传送给实参。因此在函数调用过程中,形参的值发生改变,而实参中的值不会变化。

㈤ 帮我解解这个问题,在c程序中定义函数的形参时,系统要不要对形参分配内存空间,说说你的理由!

形参只在这个函数执行的时候才会被分配内存,当函数执行完毕后分配的内存会被释放。至于理由……函数的参数属于局部变量,如果一开始就分配的话,别的地方也能访问修改,数据就不确定了。
另外,函数的形参实际是:调用此函数前,将实参压入堆栈,然后跳转到函数的地址执行。函数执行完跳回去时,堆栈弹出,内存释放。

㈥ c语言形参和实参共占相同的存储空间

无论是不是指针,形参实参都不是占用相同的空间。不是指针时,形参和实参的值是相等的;当是指针时,形参和实参都指向同一个地址(其实也就是*p(形参)和*q(实参)的值是相等的),但绝不是相同存储空间

㈦ 实参和形参都占用内存么

形参是肯定的。实参的话,如果把寄存器也看作内存的一部分的话,实参也占用内存。

㈧ java程序是在编译的时候分配空间的吗,如果不是那程序在什么时候给变量分配内存空间

编译的时候是不会分配空间的,只是将java代码编译成字节码。是在运行这段代码的时候才会分配。javac XX.java是编译代码,java XX时候是运行代码。举个简单的例子:
class Cs{
int a=1;
public void print(){
System.out.print("a="+a);
}
public static void main(String args[]){
Cs c=new Cs();
c.print();
}}
当你执行到Cs c=new Cs();的时候会初始化变量。将引用变量c放入栈内存,将变量a=1放入堆内存。

热点内容
xp系统开机密码怎么设置 发布:2024-05-02 06:49:48 浏览:759
柱加密区公式 发布:2024-05-02 06:40:19 浏览:4
java字节转换 发布:2024-05-02 06:40:11 浏览:687
用c语言做的程序 发布:2024-05-02 06:26:10 浏览:325
解压用流量 发布:2024-05-02 06:21:46 浏览:316
云购源码系统 发布:2024-05-02 06:12:52 浏览:105
电脑如何进行安卓升级 发布:2024-05-02 06:10:08 浏览:37
元龙第5集免费看完整版缓存 发布:2024-05-02 06:03:47 浏览:668
脚本宣传片 发布:2024-05-02 05:56:26 浏览:570
有线投屏安卓手机如何设置 发布:2024-05-02 05:43:26 浏览:896