如何解决重新分配时的指针仍指向旧值
此处,两个变量a = 1,b = 2和三个指针变量* p2a =&a,* q2p = p2a,* r2b =&b。 当我将* p2a更改为指向* r2b时,则指向* p2a的指针* q2p也应该更改为对吗? 。但是* q2p仍然指向* p2q指向的旧值,而不是新指向的* p2q的新值,它是* r2b指向的b的值。
#include <iostream>
using namespace std;
int main() {
int a = 1;
int b = 2;
int* p2a = &a;
int* q2p = p2a;
int* r2b = &b;
p2a = r2b;
cout << *q2p;
return 0;
}
输出:
1
我对指针的理解不是很好。所以,如果我的问题真的很愚蠢,我很抱歉。
如果您很难获得问题的描述,那么我的简单问题是,当* p2q更改为指向* r2b时,为什么* q2p值没有更改,但是* q2p仍然指向* p2q的旧值。 / p>
解决方法
否,q2p
不是int**
(指向指针p2a
),所以
int* p2a = &a;
int* q2p = p2a; // q2p is pointing at "a"
// ...
int* r2b = &b;
p2a = r2b; // q2p is still pointing at "a"
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。