| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2127 人关注过本帖
标题:为什么a和b的值是一样的?
只看楼主 加入收藏
cosdos
Rank: 9Rank: 9Rank: 9
来 自:ShangHai
等 级:蜘蛛侠
威 望:6
帖 子:2109
专家分:1385
注 册:2007-6-19
收藏
得分:0 
原帖由 [bold][underline]redice[/underline][/bold] 于 2007-12-6 13:53 发表 [url=http://bbs.][/url]
这是肯定的,要不然a和b怎么会相等呢?
我想问的是为什么那两个1在内存中的地址是一样的?
例如,为什么"cs"与"cs"的内存地址会是一样的。应该是两块区域才对呀。难道常量都这样? ...


晕倒!

1 和 1 当然一样了。

a 和 a 不一样吗!

1 是一个数字,数字。/* 一般作为立即数处理 */
1 就是一个数字。

你能对 1 取址吗!
char * p = 1;   /* 即 p = 1 , *p = ?  (未知) */


//
    难道一个字符串在代码中出现 N 次,你也想让这个字符串用 N 段内存存储吗!
//

[[italic] 本帖最后由 cosdos 于 2007-12-7 02:53 编辑 [/italic]]

—>〉Sun〈<—
2007-12-07 02:52
redice
Rank: 3Rank: 3
等 级:新手上路
威 望:6
帖 子:902
专家分:0
注 册:2006-12-11
收藏
得分:0 
你们说的都不是我想要的,我不至于那么笨 嘿嘿
我的意思是问同一个常量的内存地址是不是一定是一样的。例如1和1的地址是不是一定一样的。

鲲鹏数据 - 专业Web数据采集服务提供者
http://www.
2007-12-07 08:28
vlinux
Rank: 1
等 级:新手上路
帖 子:9
专家分:0
注 册:2006-8-29
收藏
得分:0 
faint....
这个1不是别人,正是内存地址。

你见过一个门牌号下住着两家人的情况么....
2007-12-07 09:37
jsjl2008
Rank: 1
等 级:新手上路
帖 子:10
专家分:0
注 册:2007-12-6
收藏
得分:0 
你怎么取整数1的地址,给我看看呢?

int *a =1   ->int *a =(int *)1
int *b =1   ->int *b =(int *)1

编译器已经是帮你强制转换了,VC6本来标准的兼容不是很好,你能VC通过
跟你的编译器设置有关系

不信你试试static 或extern的a ,b
2007-12-07 09:55
雨中飞燕
Rank: 3Rank: 3
等 级:禁止访问
威 望:8
帖 子:2200
专家分:0
注 册:2007-8-9
收藏
得分:0 
楼主的指针概念有问题
2007-12-07 11:10
redice
Rank: 3Rank: 3
等 级:新手上路
威 望:6
帖 子:902
专家分:0
注 册:2006-12-11
收藏
得分:0 
谢谢大家了

1是需要占内存的,程序中使用的立即数(好像有点不合适?)1,都使用同一块内存?对吗?

注意,和谐社会!!

鲲鹏数据 - 专业Web数据采集服务提供者
http://www.
2007-12-07 12:29
redice
Rank: 3Rank: 3
等 级:新手上路
威 望:6
帖 子:902
专家分:0
注 册:2006-12-11
收藏
得分:0 
我又测试了一下 好像1是不占内存的。
int *a=5;调试发现a的值是:0x00000005,而查看0x00000005处内存却并没有找到"1"

鲲鹏数据 - 专业Web数据采集服务提供者
http://www.
2007-12-07 12:36
redice
Rank: 3Rank: 3
等 级:新手上路
威 望:6
帖 子:902
专家分:0
注 册:2006-12-11
收藏
得分:0 
回复 15# 的帖子
不至于吧 虽然有两年没看了 嘿嘿

鲲鹏数据 - 专业Web数据采集服务提供者
http://www.
2007-12-07 12:38
永夜的极光
Rank: 6Rank: 6
等 级:贵宾
威 望:27
帖 子:2721
专家分:1
注 册:2007-10-9
收藏
得分:0 
原帖由 [bold][underline]redice[/underline][/bold] 于 2007-12-7 12:36 发表 [url=http://bbs.][/url]
我又测试了一下 好像1是不占内存的。
int *a=5;调试发现a的值是:0x00000005,而查看0x00000005处内存却并没有找到"1"


我发现你自己把自己搞乱了,你这个定义里面,连个1都没有,你去哪找1?

从BFS(Breadth First Study)到DFS(Depth First Study)
2007-12-07 12:48
redice
Rank: 3Rank: 3
等 级:新手上路
威 望:6
帖 子:902
专家分:0
注 册:2006-12-11
收藏
得分:0 
不好意思了 大家
我忽然发现 我要问的不是 那个问题

我是想问:
char *a="string";
char *b="string";

a和b的值为什么一样?

真实不好意思,昨天仪式糊涂了。嘿嘿

[[italic] 本帖最后由 redice 于 2007-12-8 00:38 编辑 [/italic]]

鲲鹏数据 - 专业Web数据采集服务提供者
http://www.
2007-12-07 13:28
快速回复:为什么a和b的值是一样的?
数据加载中...
 
   



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

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