2017-10-17 5 views
0
나는 연결리스트의 두 노드 교환에 대한 검색을하고 있어요

에 대한 구문과는 다음과 같이 코드 블록을 발견 :C++ 포인터와 참조

void swapNode(call * &head, call * &first, call * &second) { 
    // swap values, assuming the payload is an int: 
    int tempValue = first->value; 
    first->value = second->value; 
    second->value = tempValue; 
} 

내 질문이 무엇인지 후 넣어 앰퍼샌드의 의미 별표?

+0

아래와 같이 참조를 지정합니다. 그러나 매개 변수를 업데이트하지 않으므로 필요하지 않은 것처럼 보입니다. –

+0

@AnonMail 실제로 머리 매개 변수를 사용하지 않고 메모리 주소의 값을 첫 번째와 두 번째로 교환합니다 –

+0

테스트했습니다. 앰퍼샌드가 필요하지 않습니다. –

답변

1

여기에서 앰퍼샌드 (&)는 reference을 나타낸다. 주소 연산자가 아닙니다.

이것은 C/C++가 매개 변수를 값으로 전달하기 때문에 전달 된 포인터의 값을 변경할 수있는 방법입니다 (C++). C에서 동일한 결과를 얻으려면 이중 포인터를 사용하십시오.

+0

참조에 대한 간단한 예제를 제공 할 수 있습니까? –

+0

'&'는'reference'를 나타내지 만''참조 참조 ''가 아닙니다. –

+0

그래서'&'는'reference'와'address operator' 모두에 사용됩니까? –