누군가 내 이해가 옳은지 말해 줄 수 있습니까? 누군가가 아래 코드가 포인터에 대한 참조인지 말해 줄 수 있습니까?
# include <iostream>
using namespace std;
//function swaps references,
//takes reference to int as input args and swap them
void swap(int& a, int& b)
{
int c=a;
a=b;
b=c;
}
int main(void)
{
int i=5,j=7;
cout<<"Before swap"<<endl;
cout<<"I:"<<i<<"J:"<<j<<endl;
swap(i,j);
cout<<"After swap"<<endl;
cout<<"I:"<<i<<"J:"<<j<<endl;
return 0;
}
함수에 전달되는 변수를 수정하려면 참조를 사용해야합니다 (C 스타일 포인터도 선택할 수 있음). 목표가 포인터 (귀하의 경우 int 변수의 주소)를 스왑하는 것이라면 포인터에 대한 참조를 사용하고 스왑 함수 포인터 (int 변수의 주소)에도 전달해야합니다.
# include <iostream>
using namespace std;
void swap(int* &a, int* &b)
{
int* c=a;
a=b;
b=c;
}
int main(void)
{
int i=5,j=7;
int * p_i = &i;
int * p_j = &j;
cout << "Before swap" << endl;
cout << "I:" << *p_i << "J:" << *p_j << endl;
swap(p_i,p_j);
cout << "After swap" << endl;
cout << "I:" << *p_i << "J:" << *p_j <<endl;
return 0;
}
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다