C++地址的问题
本帖最后由 惜今怀远 于 2014-2-11 00:18 编辑1.不知道该如何设置奖励鱼币,这个顺便教一下
2.为什么p++之后就指向了y,x和y地址连续我知道,不明白y地址为什么在x后面??
#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;
这是把代码中 int y = 30 ,x =15;换成int x = 15,y = 30;之后
为毛p++之后地址还变小了4??
不能在线等了,求大神解释,谢啦O(∩_∩)O~ 期待大侠的指点 变量内存分配不是随机的吗有windows决定 话说楼主纠结这个有意思么?? 惜今怀远 发表于 2014-2-11 00:18 static/image/common/back.gif
不能在线等了,求大神解释,谢啦O(∩_∩)O~
我尝试了一下。结果跟你的结果不一样。可能真的是不同编译器分配不同吧。我的环境是Windows7 x64,在使用MinGW64 G++ 4.8.1的时候跟你结果相同。在使用Microsft Visual C++ 6.0 Enterprise英文版的时候,跟你结果不一致,结果是不管怎么改p++以后都不可能指向另一个变量。 andalousie 发表于 2014-2-11 08:33 static/image/common/back.gif
我尝试了一下。结果跟你的结果不一样。可能真的是不同编译器分配不同吧。我的环境是Windows7 x64,在使用 ...
那就有可能是自己学校老师编的那个书有点问题,不纠结这个东西了,谢谢了 牡丹花下死做鬼 发表于 2014-2-11 00:54 static/image/common/back.gif
变量内存分配不是随机的吗有windows决定 话说楼主纠结这个有意思么??
书上的对代码的解释是p++之后就指向了y的地址,感觉不太对就试了试,然后就囧了 牡丹花下死做鬼 发表于 2014-2-11 00:54 static/image/common/back.gif
变量内存分配不是随机的吗有windows决定 话说楼主纠结这个有意思么??
咳咳,纠正一下,不是随机的,变量的地址是在编译的时候决定,除非你用了动态分配函数。 记得当时我对这个也有点郁闷,不过没有管他。 无名侠 发表于 2014-2-11 09:06 static/image/common/back.gif
咳咳,纠正一下,不是随机的,变量的地址是在编译的时候决定,除非你用了动态分配函数。
哦谢谢 啊O(∩_∩)O~ 无名侠 发表于 2014-2-11 09:08 static/image/common/back.gif
记得当时我对这个也有点郁闷,不过没有管他。
谢谢O(∩_∩)O~ 我会说函数局部变量是保存在函数的栈空间中,而栈是FILO型的吗。兄弟,指针很强大,可以直接访问内存数据,但是可不是你这样玩的啊。你这样使用指针,搞不好就会造成溢出的问题的
页:
[1]