此代码取自cplusplus.com。它在教程中用来解释指针,我正在努力理解。理解教程指针的问题
当他们写p1 = 20;在代码结束时,不会改变第一个值的存储器地址以及第二个值吗?因为他们以前在代码中已经创建了p1 = p2。
如果有人有不同的解释方式,除了他们从网站或其他教程的评论?
谢谢!
#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
*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';
}
来自 “http://www.cplusplus.com/doc/tutorial/pointers/”
你应该从C++书中学习,而不是在互联网上随意的“tuts”。 –
这里没有看到任何函数'front()'和'priority_queue'。 –
代码中的优先级队列在哪里?哪个“前”不起作用?顺便说一句:引用他人或他们的代码时,你也可以包含一个链接到他们的工作。 –