[align=center]堆与堆栈以及内存分配的问题!![/align]
我在百度上搜索到这样一个帖子有这样一个说吧,我觉得有点问题,不怎么理解!!
大家看看这个解释准不准确,应该怎么去理解??
int a = 3; 
int b = 3; 
解释: 编译器先处理int a = 3;首先它会在栈中创建一个变量为a的引用,然后查找有没有字面值为3的地址,没找到,就开辟一个存放3这个字面值的地址,然后将a指向3的地址。接着处理int b = 3;在创建完b的引用变量后,由于在栈中已经有3这个字面值,便将b直接指向3的地址。这样,就出现了a与b同时均指向3的情况。还有如下的说法:
如果是 int x;则编译时系统会给变量x分配在堆栈内存中。
如果是 genus(类名) x;则运行时系统会给变量x动态地分配在堆内存中中。 大家如果有更好的解释的说法,发表一下让大家一同分享啊!!!