鱼C论坛

 找回密码
 立即注册
查看: 2390|回复: 11

C++地址的问题

[复制链接]
发表于 2014-2-11 00:03:03 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 惜今怀远 于 2014-2-11 00:18 编辑

1.不知道该如何设置奖励鱼币,这个顺便教一下
2.为什么p++之后就指向了y,x和y地址连续我知道,不明白y地址为什么在x后面?? QQ截图20140210235845.jpg
#include<iostream>
using namespace std;
int main()
{
        int y = 30 ,x =15;
        int *p= &x;
        cout <<"&x="<<&x<<"; "<<"p = "<<p<<"; "<<"*p="<<*p<<endl;
        p++;
        cout <<"&y="<<&y<<"; "<<"p = "<<p<<"; "<<"*p="<<*p<<endl;
        p--;
        cout <<"p = "<<p<<"; "<<"*p="<<*p<<endl;
        return 0;
2.jpg
这是把代码中 int y = 30 ,x =15;换成int x = 15,y = 30;之后
为毛p++之后地址还变小了4??

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2014-2-11 00:18:50 | 显示全部楼层
不能在线等了,求大神解释,谢啦O(∩_∩)O~
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2014-2-11 00:33:35 | 显示全部楼层
期待大侠的指点  
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2014-2-11 00:54:35 | 显示全部楼层

回帖奖励 +1 鱼币

变量内存分配不是随机的吗有windows决定 话说楼主纠结这个有意思么??
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2014-2-11 08:33:43 | 显示全部楼层

我尝试了一下。结果跟你的结果不一样。可能真的是不同编译器分配不同吧。我的环境是Windows7 x64,在使用MinGW64 G++ 4.8.1的时候跟你结果相同。在使用Microsft Visual C++ 6.0 Enterprise英文版的时候,跟你结果不一致,结果是不管怎么改p++以后都不可能指向另一个变量。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-2-11 08:59:43 | 显示全部楼层
andalousie 发表于 2014-2-11 08:33
我尝试了一下。结果跟你的结果不一样。可能真的是不同编译器分配不同吧。我的环境是Windows7 x64,在使用 ...

那就有可能是自己学校老师编的那个书有点问题,不纠结这个东西了,谢谢了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-2-11 09:02:52 | 显示全部楼层
牡丹花下死做鬼 发表于 2014-2-11 00:54
变量内存分配不是随机的吗有windows决定 话说楼主纠结这个有意思么??

书上的对代码的解释是p++之后就指向了y的地址,感觉不太对就试了试,然后就囧了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2014-2-11 09:06:26 | 显示全部楼层
牡丹花下死做鬼 发表于 2014-2-11 00:54
变量内存分配不是随机的吗有windows决定 话说楼主纠结这个有意思么??

咳咳,纠正一下,不是随机的,变量的地址是在编译的时候决定,除非你用了动态分配函数。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2014-2-11 09:08:19 | 显示全部楼层
记得当时我对这个也有点郁闷,不过没有管他。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2014-2-11 10:03:06 | 显示全部楼层
无名侠 发表于 2014-2-11 09:06
咳咳,纠正一下,不是随机的,变量的地址是在编译的时候决定,除非你用了动态分配函数。

哦  谢谢 啊O(∩_∩)O~
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-2-11 17:18:20 | 显示全部楼层
无名侠 发表于 2014-2-11 09:08
记得当时我对这个也有点郁闷,不过没有管他。

谢谢O(∩_∩)O~
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2014-2-11 20:04:02 | 显示全部楼层
我会说函数局部变量是保存在函数的栈空间中,而栈是FILO型的吗。兄弟,指针很强大,可以直接访问内存数据,但是可不是你这样玩的啊。你这样使用指针,搞不好就会造成溢出的问题的
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-6-11 05:33

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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