| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1091 人关注过本帖
标题:一个变量初始化后,该变量在内存中的地址也就确定下来,这句话是什么意思
取消只看楼主 加入收藏
ggyy66
Rank: 1
等 级:新手上路
帖 子:427
专家分:0
注 册:2007-8-14
结帖率:86.25%
收藏
 问题点数:0 回复次数:4 
一个变量初始化后,该变量在内存中的地址也就确定下来,这句话是什么意思
一个变量初始化后,该变量在内存中的地址也就确定下来,这句话是什么意思
-----------------------------------------------------------------------
书上说,编译时,变量的内存地址就确定了,可是内存是动态分配的呀,为什么说编译时能够确定内存地址,永不变化呢?

书上原话是:
如果在程序中定义了一个变量,在编译时系统就会给这个变量分配内存单元,并根据程序中定义的变量类型,分配一定长度的内存空间.需要注意的是:一个变量初始化后,该变量在内存中的地址也就确定下来,不管以后对该变量如何赋值,在程序运行期间,变量的内存地址总是固定不变的。

我不知如何理解书上的话,
一个变量初始化后,该变量在内存中的地址也就确定下来,这句话是什么意思,下面哪种说法比较靠谱:
1。在编译时,变量在内存中的地址就确定下来了。
2。int a; 时,即定义变量时(此时只是定义,并没有为变量赋值,变量在内存中的地址能固定下来吗?)
3。int a=5; 时,此时变量在内存中的地址被固定下来。
搜索更多相关主题的帖子: 内存 变量 意思 地址 
2008-05-17 00:58
ggyy66
Rank: 1
等 级:新手上路
帖 子:427
专家分:0
注 册:2007-8-14
收藏
得分:0 
我想问,单纯的定义变量,但是不赋值,变量地址固定得下来吗?
如:int a;

或者必须定义且给初值,才能固定变量地址:
如:int a=5;

2008-05-17 01:11
ggyy66
Rank: 1
等 级:新手上路
帖 子:427
专家分:0
注 册:2007-8-14
收藏
得分:0 
int a; 时,此时能固定变量在内存中的地址吗?
还是必须:
int a=5;时,即给定一个初值5时,变量地址才固定下来.


请大家明示,就是这两种情况我不明白.
看来,编译时是不会确定内存地址的.

2008-05-17 11:04
ggyy66
Rank: 1
等 级:新手上路
帖 子:427
专家分:0
注 册:2007-8-14
收藏
得分:0 
[bo]以下是引用 [un]Q1007665007[/un] 在 2008-5-17 01:26 的发言:[/bo]

void fun()
{
    int a=0; //这个a,只要这个函数不被调用,地址就不确定
    //或者,不同时刻调用,a的地址也不一定相同
}


void fun()
{
    int a; //此时a没有给初值,当这个函数被调用时,地址能确定下来吗?
}

2008-05-17 11:06
ggyy66
Rank: 1
等 级:新手上路
帖 子:427
专家分:0
注 册:2007-8-14
收藏
得分:0 
[bo]以下是引用 [un]ggyy66[/un] 在 2008-5-17 11:06 的发言:[/bo]



void fun()
{
    int a; //此时a没有给初值,当这个函数被调用时,地址能确定下来吗?
}


有解吗?

2008-05-18 16:22
快速回复:一个变量初始化后,该变量在内存中的地址也就确定下来,这句话是什么意 ...
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.016229 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved