| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1219 人关注过本帖
标题:这是一道小题。。。
只看楼主 加入收藏
小小战士
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
威 望:1
帖 子:569
专家分:1313
注 册:2012-11-3
收藏
得分:0 
在程序没有退出之前,它分配的内存(这里并没有什么临时变量,只有一个a)是不会被收回的。

关于地址的分类,大家还是要多了解了解
地址分为物理地址、逻辑地址(虚地址)和偏移地址
大家可以从这方面想想

[ 本帖最后由 小小战士 于 2012-12-9 23:14 编辑 ]

小小战士,战士中的战斗机!
2012-12-09 23:11
cyhdahua
Rank: 7Rank: 7Rank: 7
来 自:山东
等 级:黑侠
威 望:2
帖 子:221
专家分:643
注 册:2012-6-15
收藏
得分:0 
都是用vc6.0这么用的!!
我用vs2008,和在系统上运行,都是不一样的!

WE GO
2012-12-09 23:20
yaobao
Rank: 13Rank: 13Rank: 13Rank: 13
等 级:蒙面侠
威 望:4
帖 子:1854
专家分:4121
注 册:2012-10-25
收藏
得分:3 
确实一样,至于原因嘛,版主在10楼说的我感觉很有道理

认认真真的学习,踏踏实实的走路:戒骄戒躁!!!
2012-12-10 15:23
zhou31146001
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:303
专家分:131
注 册:2012-11-28
收藏
得分:3 
一样,a的值赋为1,已代表为真,执行同一个结果
2012-12-10 15:48
enjoyfengzi1
Rank: 1
等 级:新手上路
帖 子:1
专家分:3
注 册:2012-12-5
收藏
得分:3 
vc下是一样的,但是在vim下是不一样的
2012-12-10 16:04
lz1091914999
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:四川
等 级:贵宾
威 望:37
帖 子:2011
专家分:5959
注 册:2010-11-1
收藏
得分:3 
32位保护模式下每个进程都有一个4G的地址空间,虽然这两个变量的地址是一样的,但实际上映射到的是不同的物理内存。
程序代码:
#include<stdio.h>

int main(void)
{
    int var = 0, flag = 1, option;
    while (flag) {
        printf("<1>: Input a new value.\n"
               "<2>: Show address and value.\n"
               "<3>: Exit.\n");
        scanf("%d", &option);
        switch (option) {
        case 1:
            scanf("%d", &var);
        case 2:
            printf("Address of var: %p\n", &var);
            printf("Value   of var: %d\n\n", var);
            break;
        default:
            flag = 0;
            break;
        }
    }
    return 0;
}

先运行这个程序,输入一个值2012,输入完成之后便看到了它的地址(0028FF38)和值(2012),然后再运行这个程序,不输入值,直接显示(选项2),你会发现var的值还是它的初值,也就是0,它的地址却和另一个程序var的地址一样。这也就说明它们其实存在于不同的物理内存中:
图片附件: 游客没有浏览图片的权限,请 登录注册


[ 本帖最后由 lz1091914999 于 2012-12-10 18:34 编辑 ]

My life is brilliant
2012-12-10 16:55
麦香
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:65
专家分:163
注 册:2011-10-18
收藏
得分:3 
学习了

你们要进窄门,因为引向灭亡的门是宽的,路是大的,进去的人也多。
2012-12-10 17:22
zhu224039
Rank: 8Rank: 8
等 级:贵宾
威 望:17
帖 子:862
专家分:792
注 册:2012-7-29
收藏
得分:3 
楼上威武

程序的加载 在编译的时候有个建议基地址的
如果那个基地址被占用了,就需要重新定位

我要成为嘿嘿的黑客,替天行道
2012-12-10 17:26
lz1091914999
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:四川
等 级:贵宾
威 望:37
帖 子:2011
专家分:5959
注 册:2010-11-1
收藏
得分:0 
图片附件: 游客没有浏览图片的权限,请 登录注册

Windows程序设计(王艳平)

My life is brilliant
2012-12-10 17:34
zhu224039
Rank: 8Rank: 8
等 级:贵宾
威 望:17
帖 子:862
专家分:792
注 册:2012-7-29
收藏
得分:0 
回复 19楼 lz1091914999
你这个说的就很模糊了,一点都不真切
内存条就1块 怎木屏蔽的 哥哥 你说说呢
你举得那几个地址是 虚拟地址 不是物理地址
任务的切换 和 页面管理机制才是正道


我要成为嘿嘿的黑客,替天行道
2012-12-10 17:44
快速回复:这是一道小题。。。
数据加载中...
 
   



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

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