참조 포인터와 참조 포인터 차이

프로세스 전달 C ++ 파라미터 포인터 ( ) 및 포인터 참조 ( &)와 다르다.
우리는 종종 다음 포인터를 통해 상호 접속 권을 통해 객체에 대한 포인터의 점의 값을 수정할 수 있지만, 동일한 CAN도 참조하여 물체의 값을 수정.
그러나, 전송 포인터는 우리가 포인터를 통해 개체에 대한 포인터 포인트의 값을 수정할 수 있지만, 문제가있다, 그러나 우리는 직접 (주소를 저장하는 포인터 변수) 포인터의 내용을 수정하지 않은 경우 함수 매개 변수 전달하기 때문에 포인터가 실제로 때 가게 내부의 주소 포인터 있지만, 다시 복사하거나 우리는 그 객체의 주소를 가질 것,하지만 원래의 포인터 변수 포인터 변수.
우리는 포인터 변수를 통해 패스를 수정하는 함수의 주소로 할 때, 당신은 포인터 참조를 사용해야합니다, 그렇지 않으면,이 수정은 "무효"

코드 :

#include<iostream>
using namespace std;
class Node {
public:
    int data;
};
void fun1(Node* node) {
    node = new Node();
    node->data = 2;
}

void fun2(Node*& node) {
    node = new Node();
    node->data = 2;
}

int main() {
    Node * node = new Node();
    node->data = 1;
    fun1(node);
    cout << "传指针并没有修改到该指针的值,而是新建了一个指针指向了一个新的对象" << endl;
    cout << node->data << endl;
    fun2(node);
    cout << "传指针引用把传进来的指针指向一个新的对象,并修改该对象的值" << endl;
    cout << node->data << endl;
    system("pause");
}

결과

传指针并没有修改到该指针的值,而是新建了一个指针指向了一个新的对象
1
传指针引用把传进来的指针指向一个新的对象,并修改该对象的值
2
请按任意键继续. . .

추천

출처www.cnblogs.com/urahyou/p/11841124.html