正文
c语言函数在内存中的位置 c语言内存区域
小程序:扫一扫查出行
【扫一扫了解最新限行尾号】
复制小程序
【扫一扫了解最新限行尾号】
复制小程序
C语言:函数的形式参数存放在内存的?
形参只是一个符号,不会分配具体的空间的..
当函数被调用的时候,具体给出的参数,也就是实参,其实是一份拷贝..
它的内存空间在该函数的堆中进行分配.
比如
定义函数
int
add(int
,int);
在主函数中
定义变量
int
x,
y..
调用函数
add(x,
y);
那么在函数add的堆中会分配出空间,来保存实参x
y的拷贝..
而主函数中的
x
y
是在主函数的堆中保存的...
不晓得有没有说明白..呵呵
函数存在内存的什么地方
当一段源程序被执行前,系统会安排虚拟的3块不同性质的内存空间。函数的名称即函数的入口地址存在于静态存储区,即程序存在它就存在。要指出的是并没有程序段在内存的说法,段是执行的时候存在的,执行后则没了,标识符(变量,常量等)在内存中存储。
象子函数里面第一的变量则是在动态存储区,即函数被执行时它才被分配空间。
具体的你可以找书多了解下,C语言书上都有的。
在C语言中,如何给函数分配内存?
函数的相对地址在编译链接的时候就已经分配好了c语言函数在内存中的位置,但是绝对地址是未知的。就是说,函数的地址相对于程序基址的偏移是确定的,但是程序在运行的时候,会被加载到哪一个区域运行是不确定的,需要由操作系统根据内存的使用的情况等进行调度,所以函数在内存中的绝对地址也就自然不确定了,希望可以帮到c语言函数在内存中的位置你。
关于c语言函数在内存中的位置和c语言内存区域的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。