| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 5172 人关注过本帖
标题:myajax95斑竹,我要求你把那个帖子解开
只看楼主 加入收藏
song4
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:38
帖 子:1533
专家分:4
注 册:2006-3-25
收藏
得分:0 
以下是引用热情依然在2006-7-24 16:32:04的发言:
如果你说是地址的位置,我个人认为是随机的,我记得好像是放在static地址的下面,对了,如果不是static类型,是放在栈里面的.如果是动态分配的,就是放在heap(堆)注意,栈跟堆是不同的,栈会自动退栈,堆要手动释放.这些都是我个人的猜测,说错了请指出

基本上随机,但不是绝对


嵌入式 ARM 单片机 驱动 RT操作系统 J2ME LINUX  Symbian C C++ 数据结构 JAVA Oracle 设计模式 软件工程 JSP
2006-07-25 08:08
song4
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:38
帖 子:1533
专家分:4
注 册:2006-3-25
收藏
得分:0 
以下是引用穆扬在2006-7-24 17:02:41的发言:

我给出我的看法
pt == (int *)0X000000; (当然这里系统做了类型转换,但在我概念里, pt 与 0X000000是绝对不同的,前者是指针,后者是地址,是指针的值,你不能说指针的值就是指针本身)
如果你的pt是这样定义的
void *pt=new int[5];
那么我认为
pt==0x000000;

因为刚开始设计指针,大家只关心和利用它的值,而不关心它的地址
所以pt本身被设计成他指的值.pt==0x000000
而且,最主要一点,指针就是地址


嵌入式 ARM 单片机 驱动 RT操作系统 J2ME LINUX  Symbian C C++ 数据结构 JAVA Oracle 设计模式 软件工程 JSP
2006-07-25 08:13
wfpb
Rank: 6Rank: 6
等 级:贵宾
威 望:29
帖 子:2188
专家分:0
注 册:2006-4-2
收藏
得分:0 

再来说一句,我没有打快,只是你们误解我的意思,请看清楚我说的话,我是说类型相同,他们返回值的类型是相同的
我知道int(5)和int[5]不是一个概念,但是我的帖子是说,这两个都是调用的new函数.
(new int(5))和(new int[5])是同一种类型,请看清楚后再说 不同


[glow=255,red,2]wfpb的部落格[/glow] 学习成为生活的重要组成部分!
2006-07-25 08:24
热情依然
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:22
帖 子:715
专家分:0
注 册:2005-4-5
收藏
得分:0 
以下是引用song4在2006-7-25 8:13:38的发言:

因为刚开始设计指针,大家只关心和利用它的值,而不关心它的地址
所以pt本身被设计成他指的值.pt==0x000000
而且,最主要一点,指针就是地址

同意,我做过测试,在C++中
如果
int a = 2;

int *p = &a;
cout << &p << endl;
cout << p << endl;
cout << &a << endl;
就这样 cout <<p就会打印出p的值,就是 &a的地址


c++/C + 汇编 = 天下无敌
2006-07-25 08:27
song4
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:38
帖 子:1533
专家分:4
注 册:2006-3-25
收藏
得分:0 

你们都是战士呀
我看了几个就看不进去了
..也太强了
连这个的东西都讨论这样
不过,我也想学汇编,象穆说的那样也太偏激了
那个根本就是有争议的问题,如果那样说,哪个编译语言都别学了
(我下学期写数据结构.)
至于热情说的new我也同意
先malloc后类型转换
不管怎么分配空间,最开始的都是void

嵌入式 ARM 单片机 驱动 RT操作系统 J2ME LINUX  Symbian C C++ 数据结构 JAVA Oracle 设计模式 软件工程 JSP
2006-07-25 08:38
wfpb
Rank: 6Rank: 6
等 级:贵宾
威 望:29
帖 子:2188
专家分:0
注 册:2006-4-2
收藏
得分:0 
50楼:
????
你21楼 问的 是 (new int[5]) 的类型
我的回答是根据你和 热情依然 的帖子 我认为是 void *
MSDN上看的是返回的void*但是我似乎在前面已经证明出是int*了,你没看你发表的帖子(“抗议表示鄙视”)?
现在你又来了一个 new int(5);
让我实在不懂你究竟什么意思
这个 new int(5); 是接续几楼的话题啊




51楼:
竟然说new int(5)和new int[5]类型会不同,你可不要闹笑话哦



53楼:
我没说啊
你为什么总歪曲我的话呢
请你明确指出我哪个帖子中的哪句话是这个意思
让大家评评是我表达不正确
还是你理解不正确




65楼:
我吵了吗?
他21楼 谈 int new[5]
我28楼 做了 关于 int new[5] 的回答
他46落 又突然毫无背景地冒出个new int(5)
我50楼 莫名其妙,表示疑惑
他51楼说“竟然说new int(5)和new int[5]类型会不同,你可不要闹笑话哦”
现在你指责我"穆兄不要吵了"
你觉得你公允吗?
你觉得你客观吗?
为什么他的令人无法理解的东西你却说"我相信他打快了而已",难道出来公开解释一下原委不是他的责任和义务吗?

93楼:
再来说一句,我没有打快,只是你们误解我的意思,请看清楚我说的话,我是说类型相同,他们返回值的类型是相同的
我知道int(5)和int[5]不是一个概念,但是我的帖子是说,这两个都是调用的new函数.
(new int(5))和(new int[5])是同一种类型,请看清楚后再说 不同

你看看上面的话,是否不好意思了呢?
要端正态度再来看别人的言论


[glow=255,red,2]wfpb的部落格[/glow] 学习成为生活的重要组成部分!
2006-07-25 08:41
wfpb
Rank: 6Rank: 6
等 级:贵宾
威 望:29
帖 子:2188
专家分:0
注 册:2006-4-2
收藏
得分:0 

我看了看MSDN,new和new[]的函数原型都是返回void*;
但是会因为在int*p=new int[10];时知道p是指向什么类型的指针。
至于为什么编译器会知道,我想是因为编译器会判断分配的内存是分配给什么类型的,以什么形式分配的。
所以仍然只能int*p=new int;或者void *p=new int;而不能double *p=new int;
但是C++不支持直接对void*“做动作”比如输出,就不能cout<<*(void*)p<<endl;

这是在“2重指针问题”93楼我说的话。虽然没说很具体,我表达能力有问题,但是是否已经说明:
cout<<*(new int(5));可以成立与cout<<*(void*)p<<endl;不成立的矛盾,显示出new int(5)不会是void*的类型呢?

所以不要断章取义


[glow=255,red,2]wfpb的部落格[/glow] 学习成为生活的重要组成部分!
2006-07-25 08:46
热情依然
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:22
帖 子:715
专家分:0
注 册:2005-4-5
收藏
得分:0 
以下是引用song4在2006-7-25 8:38:09的发言:

你们都是战士呀
我看了几个就看不进去了
..也太强了
连这个的东西都讨论这样
不过,我也想学汇编,象穆说的那样也太偏激了
那个根本就是有争议的问题,如果那样说,哪个编译语言都别学了
(我下学期写数据结构.)
至于热情说的new我也同意
先malloc后类型转换
不管怎么分配空间,最开始的都是void

加入我们,减轻我们的负担现在数据结构的人过来已经多数是问数学了


c++/C + 汇编 = 天下无敌
2006-07-25 08:47
song4
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:38
帖 子:1533
专家分:4
注 册:2006-3-25
收藏
得分:0 

我还没学呢,你再等等吧
..........
我下学期学的东西可多,UML,LINUX.数据.英语
我现在尽量降低大家的情绪,发点水帖吧

嵌入式 ARM 单片机 驱动 RT操作系统 J2ME LINUX  Symbian C C++ 数据结构 JAVA Oracle 设计模式 软件工程 JSP
2006-07-25 08:50
热情依然
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:22
帖 子:715
专家分:0
注 册:2005-4-5
收藏
得分:0 
以下是引用song4在2006-7-25 8:50:24的发言:

我还没学呢,你再等等吧
..........
我下学期学的东西可多,UML,LINUX.数据.英语
我现在尽量降低大家的情绪,发点水帖吧

LINUX,好好学,这个是学操作系统的好机会,可惜当时候我不识货,没有学,后悔中


c++/C + 汇编 = 天下无敌
2006-07-25 08:51
快速回复:myajax95斑竹,我要求你把那个帖子解开
数据加载中...
 
   



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

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