设为首页收藏本站

新微赢技术网

 找回密码
 注册
搜索
热搜: 回贴
查看: 1670|回复: 5
打印 上一主题 下一主题

请教一个内存分配问题

[复制链接]
跳转到指定楼层
1#
发表于 2009-11-3 04:15:32 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
请看下边代码:
#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字节)?跟它存放的地址类型和大小有关么?


请高手赐教!!
6#
发表于 2009-11-3 04:15:37 | 只看该作者
我明白了,多谢版主的精彩解答!
回复 支持 反对

使用道具 举报

5#
发表于 2009-11-3 04:15:36 | 只看该作者
以下是引用adaliuliu在2006-8-22 15:24:27的发言:

请看下边代码:
#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字节)?跟它存放的地址类型和大小有关么?


请高手赐教!!
细讲一下
1.分向上和向下两种
在栈里的变量空间都是向上扩张,也就是说,根据你定义变量的顺序,依次向上分配空间
而堆的是向下分配空间
那些字符是16进制的表示 I的地址与其他的一样,都在栈内

2.一般情况是连续分配的,因为系统也没有多余的指针来完成地址标记.
特殊情况是,当你定义的变量不是一个"整数",或者过大与这一字符条的时候,毕竟用户不能保证定义4个字节或其倍数的东西
例如
struct tmp
{
int xx;
char x;
};
sizeof(tmp)!=5 it==8
所以与复职无关,原因在1


3.简单说4不是很负责
只能说是sizeof(int)
指针只是储存一下地址,跟储存什么类型无关,指针的类型,只是告诉你他所指的内容和每次移动的字节,方便运算.
回复 支持 反对

使用道具 举报

4#
发表于 2009-11-3 04:15:35 | 只看该作者
呵呵,0x0012FF70 是怎么来的?这下明白吧,,

版主说分向上向下两种,能具体解释一下么,从程序结果看我这里是不是向下的?
回复 支持 反对

使用道具 举报

3#
发表于 2009-11-3 04:15:34 | 只看该作者
2006-8-22 15:43:52 song4

等 级:贵宾
威 望:38
帖 子:1531
专家分:0
注 册:2006-3-25
第 5 楼   得分:0  
分向上向下两种
回复 支持 反对

使用道具 举报

2#
发表于 2009-11-3 04:15:33 | 只看该作者
2006-8-22 15:29:37 adaliuliu

等 级:新手上路
帖 子:38
专家分:0
注 册:2006-8-21
第 3 楼   得分:0  

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

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

申请友链|小黑屋|最新主题|手机版|新微赢技术网 ( 苏ICP备08020429号 )  

GMT+8, 2024-11-19 04:26 , Processed in 0.119327 second(s), 9 queries , Gzip On, Memcache On.

Powered by xuexi

© 2001-2013 HaiAn.Com.Cn Inc. 寰耽

快速回复 返回顶部 返回列表