1

所以,我有我的指针:

int *p = new int(10);

我打印出以下内容:

&p which is: 0xbdee018
 p which is: 0xb8c254b0

&p代表指针的地址,pis代表指针本身映射的值的地址。

这是正确的,还是恰恰相反?

4

11 回答 11

5

对,就是这样。&给出元素的地址。

所以

  • p给出当前变量中的值 -p作为一个指针,你得到一个指针(指向一个 int)
  • &p返回地址p

以图形方式

  p value = 0xb8c254b0 --> int x 10
  ^
  |-------- 0xbdee018
于 2013-06-05T10:55:27.363 回答
3

是的你是对的 。 &p代表指针的地址并p给出它指向的地址。

于 2013-06-05T10:54:03.687 回答
2

p表示整数的地址,例如int*.

*p表示存储在p(取消引用)的整数,例如int.

&p表示指针的地址p。如果pint,您将通过引用来获得指向 int 的指针p,例如int*

于 2013-06-05T10:54:38.550 回答
2

是的,你完全正确。

&p 是指针的地址,或者您可以说指针的指针。

p 是 10 个 int 元素的数组的指针。

于 2013-06-05T10:55:59.113 回答
1

我认为你正在以正确的方式得到东西。指针必须存储在某个地方,因此它也有一个地址。尝试使用调试器查看内存,使用示例中显示的地址,指向该地址

0xbdee018

并检查字节,你应该会看到,以一些字节顺序:

0xb8c254b0

p

字节的顺序取决于您使用的 CPU 的“字节顺序”

于 2013-06-05T10:54:55.650 回答
1

指针是一个variable存储address of other variable指针指向的对象。这个变量本身也有内存地址,&p在这种情况下,如果变量名是p. 所以:

“&p”代表指针的地址,“p”代表指针本身映射的值的地址。

你说的对。此外,*p将为您提供它指向的对象的值。您可能会发现Binky Pointer Fun Video很有用。

于 2013-06-05T10:55:23.350 回答
1

是的,看来,你做对了。

说明:

int i = 42;
int * pointer_to_i = &i;

然后:

i == 42 // obvious
&i == pointer_to_i // address, where a value 42 is stored
                   // for the sake of example, let's assume
                   // that &i == 0x12345678
&pointer_to_i // address, where a value 0x12345678 is stored

此外:

  • &<name>获取变量的地址<name>(您可以将其分配给指针);
  • *<pointer> 取消引用<pointer>即检索存储在该指针指向的位置的实际数据。
于 2013-06-05T10:55:36.680 回答
1

P 是指向 int 的指针。(*p) 表示指针 p 处的值,它将是 p 指向的 int 的值。(&p) 将为您提供指针的地址,表示 *(&p)=p。

于 2013-06-05T10:56:42.617 回答
1

我认为您需要取消引用指针才能获得该值。

尝试打印*p,因为这会打印存储在地址中的值,这是一个取消引用的指针。

当您打印时&p,您正在打印地址的地址p

打印p将指针打印到p

于 2013-06-05T10:57:55.347 回答
1

在 C++ 中,许多人更int* p喜欢int *p. 从语言的角度来看,两者之间绝对没有区别,这只是人类感知的问题。

  • int* p说:“p是一个指向整数的指针”。
  • &p是存储的内存位置p(与 的数据类型无关p)。
  • p是指针本身。它的值是一个存储整数的内存位置(if 除外p == 0)。
  • *p是(对)p 指向的值的引用。

在 C 中,许多人更int *p喜欢int* p. 它说:“*p是一个整数”。这样做的好处是您不会陷入诸如int* p, q声明 anint* p和 an之类的陷阱int q

于 2013-06-05T11:00:40.817 回答
0

对于指针(例如,int* p):

  • p 是指针(即指向对象的地址)
  • &p 是指针的地址。
  • *p 是指向对象(取消引用)。

对于非指针(例如,int p):

  • p 是数据
  • &p 是它的地址
于 2013-06-05T10:54:28.853 回答