// 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是什么?
答案 0 :(得分:0)
这是我的逐行说明:
我们从p1
指向firstvalue
开始,到p2
指向secondvalue
。 firstvalue
是5,而secondvalue
是10。
*p1 = 10;
firstvalue
现在是10。
*p2 = *p1;
以p1
指向的事物(firstvalue
,值为10)并将其分配给p2
指向(secondvalue
)的事物。 firstvalue
和secondvalue
现在都是10。
p1 = p2;
将p2
分配给p1
。 p1
和p2
现在都指向secondvalue
。
*p1 = 20;
将事物p1
指向(secondvalue
)的值设置为20。firstvalue
现在是10,secondvalue
现在是20。