그것의 C ++, 참조, 이해

/ *이 예에서는 세 개의 변수 값을 교환하는 방법을 보여
. 1) swap1 () 파라미터가 직접 콘텐츠를 전송, 우리는 두 숫자의 교환 가치의 목적을 달성 할 수 없다. 데이터가 동일하지 swap1에 들어 ()는, A가 B는 파라미터가 자신의 메모리가 기능하고 NUM1 내부 로컬 변수의 범위에 한정된다된다 NUM2을 말한다. 값은 각각 NUM1, NUM2는 함수가 그 이후 NUM1, NUM2,라고 B, A에 전달하고, swap1에서 A, B, 더 이상 어떤 관계 () 내부 검토 A는 B 값은 외부 NUM1, NUM2의 기능에 영향을주지 않습니다 그것은 NUM1, NUM2의 값을 변경하지 않습니다.

2) swap2 ()는 포인터를 전달하고, 두 숫자의 교환 가치의 목적을 달성 할 수있다. 함수 각각 NUM1를 호출하면, P1, P2, P1 후, P2 지점 A, B의 데이터를 표현하는 함수 내의 포인터를 통한 간접적 B, 숫자에게 변경 포인터를 NUM2. 우리는 " 파라미터의 함수로서 C 언어 포인터 변수 '도 1) 사이의 차이를 비교하고, 2)도있다.

2) swap3 ()를 참조로 전달되며, 이는 두 숫자의 교환 가치의 목적을 달성 할 수있다. R1은 R2에 의해 데이터를 NUM1에 영향을 수정합니다 후에는 참조 데이터, 다음 R1과 NUM1 및 NUM2의 R2는 동일한 데이터를 표현하고, 데이터를 수정하는 기능, 각각 R1, R2 NUM1에 바인딩, NUM2를 호출 할 때 또한 후 NUM2에 영향을 미친다. * /

 

사용법 #include <iostream>
네임 스페이스를 사용하여 표준;
보이드 swap1 (INT의 B, A INT);
보이드 swap2 (INT의 *를 P1, INT의 *를 P2);
보이드 swap3 (INT 및 R1, R2 및 INT);
INT의 main () {
INT의 NUM1, NUM2;
COUT << "直接传递"<< ENDL;
CIN >> >> NUM1 NUM2;
swap1 (NUM1, NUM2);
COUT << NUM1 << ''<< NUM2 << ENDL;
COUT << "传递指针"<< ENDL;
CIN >> >> NUM1 NUM2;
swap2 (NUM1, NUM2);
COUT << NUM1 << ''<< NUM2 << ENDL;
COUT << "按引用传参"<< ENDL;
CIN >> >> NUM1 NUM2;
swap3 (NUM1, NUM2);
COUT << NUM1 << "






TEMP = B;
}
// 포인터 전달
공극 swap2 (P1의 INT *를 INT의 *를 P2) {
INT의 * 온도 = P1]
* = P1 * P2]
* P2 = TEMP;
}
참조하여 // 파라미터 통과
공극 swap3 (INT 및 R1을 , INT 및 R2) {
INT의 TEMP = R1,
R1 = R2,
R2 = TEMP;
}

추천

출처www.cnblogs.com/qianrushi1/p/11564344.html