基础指针c ++

时间:2018-07-14 20:09:33

标签: c++ pointers

Pointer Example

// more pointers
#include <iostream>
using namespace std;

int main ()
{
  int firstvalue = 5, secondvalue = 15;
  int * p1, * p2;

  p1 = &firstvalue;  // p1 = address of firstvalue
  p2 = &secondvalue; // p2 = address of secondvalue
  *p1 = 10;          // value pointed to by p1 = 10
 Line 14 - *p2 = *p1;         // value pointed to by p2 = value pointed to by p1
  p1 = p2;           // p1 = p2 (value of pointer is copied)
  *p1 = 20;          // value pointed to by p1 = 20

  cout << "firstvalue is " << firstvalue << '\n';
  cout << "secondvalue is " << secondvalue << '\n';
  return 0;
}

除了进入第14行时,我觉得自己了解所有东西。 我的问题是指针p1现在也等于p2指向的地址空间吗?还有firstvalue = 10和secondvalue = 20是什么?

1 个答案:

答案 0 :(得分:0)

这是我的逐行说明:

我们从p1指向firstvalue开始,到p2指向secondvaluefirstvalue是5,而secondvalue是10。

*p1 = 10;

firstvalue现在是10。

*p2 = *p1;

p1指向的事物(firstvalue,值为10)并将其分配给p2指向(secondvalue)的事物。 firstvaluesecondvalue现在都是10。

p1 = p2;

p2分配给p1p1p2现在都指向secondvalue

*p1 = 20;

将事物p1指向(secondvalue)的值设置为20。firstvalue现在是10,secondvalue现在是20。