c++指针: 储存 “指针地址” 的 地址是什么?

大神们,刚开始学习c++的指针模块。然后碰到这么个问题。如下:
代码:
#include <iostream>
using namespace std;

int main()
{
int y = 1;
int * numptr = & y;
cout << numptr << endl;
cout << &numptr << endl;

return 0;
}
然后得到以下结果

所以请教,&numptr的意义是什么啊?是储存 指针地址 的 地址么?
或者请大神解释一下两个东西。谢谢啦

  指针指的是内存地址,是内存中的一个内存区块的地址编号;
  指针变量就是一个变量,这个变量本身要存储在内存中,指针变量所在内存中存储的就是这个指针变量所指向的地址;
  指向指针的指针变量:本身也是指针变量,此变量指向的地址中存储的还是地址;
  例如给的代码中,p是指针变量,*p表示p中存储的地址所指向内存空间;**a=&p表示把p这个指针变量所在的地址传递给a;
  若 i 所在内存地址编号为x1004;p所在内存地址为x1100;a所在内存地址为x1200;
  则p=&i表示吧x1004这个地址存到p所在的x1100内存位置中;
  a=&p吧x1100这个地址存到a所在的x1200内存位置中。
温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2016-05-10
指针 也是一种变量 所以指针其实是【指针变量】
在32位环境下,【指针变量】就是一个32位数,它的值表示一个内存地址,但它本身也是存储在内存中的,
【指针变量】的地址就是这个【指针变量】的本身所在的内存地址追问

在转到 引用调用了。比如说,int a = 1; int &y = a; 那这里边y代表的是什么呢。

追答

y代表a的一个别名,意思就是其实它们是同一个东西

int a = 1;
int &y = a;
a = 2; 
printf("%d", y); // 输出2

追问

再问一下哈,就是说引用调用和指针是完全不一样的体系么?或者有别的理解?比如说可以把y理解成一种地址或者什么的?还是只能理解成是a的一个别名呀?

追答

不一样,引用调用你可以理解为就是同一个东西,只不过你给它起了两名字而已,编译器编译以后就没有区别了。

但是指针不一样,指针是一个变量,是一个32位数(32位环境),这个数代表一个地址 就是指针指向的对象的地址

所以 指针对象是存放在内存中的一个变量 可以分配在堆中 也可以分配在栈中

但引用对对象不是,只是你给已有的变量起了一个别名 不会在内存中占空间 , 编译器编译之后会直接寻址找到对象的

int a = 1;
int &y = a;
a = 2; 
int* p = &a;
int* q = &y;
printf("%d 0x%x 0x%x\n", y, p, q); // 可以看到 p和q输出的是一样的

本回答被提问者采纳
第2个回答  2013-10-18

首先

int * numptr

这个操作分配了一个房间号并给你钥匙,但是房间里面没放任何东西。

numptr = & y;

这个操作是用钥匙打开这个房间并往这个房间里面放上另外一个房间的钥匙,这么说不知道你懂了没?

追问

转到 引用调用了。比如说,int a = 1; int &y = a; 那这里边y代表的是什么呢。

第3个回答  2013-10-18

储存 “指针地址” 的 地址就是二级指针了。

int num = 0x1111; 
int *pPtr =  &num;
int **ppPtr = &pPtr;

希望对你有帮助。

追问

那我想问一下,关于引用调用这块的。比如说,int a = 1; int &y = a; 那这里边y代表的是什么呢?

追答

int &y = a这样写是不对的,应该是int *y = &a;y代表的是一个指针指向变量a(y存的是变量a的地址);

第4个回答  2013-10-18
这里numptr的值是y的地址,即&y。因为numptr是变量,它也有自己的地址,即&numptr。
总而言之,只要是变量,就有自己的地址,用&即可得到该变量的地址。至于变量存储的内容则依情况而定。追问

那不明白引用调用了。比如说,int a = 1; int &y = a; 那这里边y代表的是什么呢

追答

y为a的引用,也可以说是别名,所以y就是a,具有相同的地址,即:&y == &a。对y的所有操作等价于直接对a操作。
注意:定义中的&不是取址运算符,它和前面的类型合在一起是一个类型,即引用类型。

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网