关于内存分配的问题(100分)

  • 主题发起人 主题发起人 mask047
  • 开始时间 开始时间
M

mask047

Unregistered / Unconfirmed
GUEST, unregistred user!
先看两个函数:
f(int a);
F(Class1 object1);
在调用时f(b)是值传递,不能改变b的值。而F(object2)可以改变object2的成员变量(至少在java中是这样)。所以我怀疑对象名其实是指针。最近又有朋友和我说其实变量名(包括对象名)对于编译系统来讲,全是指针。
我不知道他说的对不对,不过我想可能对于每一层(stack的每一层)都有一个符号表,记录变量名(包括对象名)和它的内存位置(指针)。所以有了上面的结论。
我的问题是:
有谁知道C/C++的的编译系统的内存分配机制的,特别是关于对象的内存和函数的代码内存方面的?
100分全部送上,或则介绍本书也可以!
 
注:
可能在C++中F(object2)不是像上面说的,不过我真真想知道的是:
[red]如果你是一个编译系统的设计者,你会怎么给用户程序分配内存?[/red]
 
你还是读一些关于编译原理的书吧。编程需要打基础时,就要从基本开始。
btw:C/C++中,所有的变量和对象实例当然是指针。
符号表是编译器在编译,连接过程中建立的,在EXE文件中是不存在的,如果你不使用RTTI的
话。所以,在C/C++中知道了指针就是知道了一切。
 
问题有点高深,好象没必要。
 
后退
顶部