标题:请教一个内存分配问题
取消只看楼主
adaliuliu
Rank: 1
等 级:新手上路
帖 子:38
专家分:0
注 册:2006-8-21
 问题点数:0 回复次数:3 
请教一个内存分配问题

请看下边代码:
#include"iostream.h"
#include"iomanip.h"
void main()
{
int i=10;
int *j=&i;
if(!0)
{
int l=20;
int *k=&l;
cout<<&k<<setw(15)<<&l<<endl;
}
cout<<&i<<setw(15)<<&j<<setw(15)<<sizeof(j)<<endl;

}
输出结果为:0x0012FF70 //&k 0x0012FF74 //&l:
0x0012FF7C //&i 0x0012FF78 //&j
请问各位
1:内存的地址如何命名的?地址中的数字和字符各有什么含义?i的地址与其他三个有什么不同?
2:内存中的地址不是连续分布的么?i的赋值应在j前边且连续,l也应在k前边,可结果让我迷惑。。。不知是否与内存赋值方式有关?
3:指针变量在内存中占多少字节(我之前看到很多默认的4字节)?跟它存放的地址类型和大小有关么?


请高手赐教!!

搜索更多相关主题的帖子: 内存 分配问题 
2006-08-22 15:24
adaliuliu
Rank: 1
等 级:新手上路
帖 子:38
专家分:0
注 册:2006-8-21
得分:0 

不要意思,献丑,我的意思是变量在内存中的地址值的命名规则是什么?

2006-08-22 15:40
adaliuliu
Rank: 1
等 级:新手上路
帖 子:38
专家分:0
注 册:2006-8-21
得分:0 
呵呵,0x0012FF70 是怎么来的?这下明白吧,,

版主说分向上向下两种,能具体解释一下么,从程序结果看我这里是不是向下的?
2006-08-22 16:03
adaliuliu
Rank: 1
等 级:新手上路
帖 子:38
专家分:0
注 册:2006-8-21
得分:0 
我明白了,多谢版主的精彩解答!
2006-08-22 16:33



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-85485-1-1.html




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

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