본문 바로가기
C++ 알고리즘/2. C++ 언어 review

포인터 와 레퍼런스 // call_by_value , call_by_reference

by Beijing_KingGod 2019. 9. 1.
#include <iostream>

using namespace std;

void call_by_value(int x, int y){
	int temp = x;
	x=y;
	y=temp;
}

void swap_pointer(int *x, int *y){
	int temp = *x; //x 포인터가 가리키는 값
	*x = *y;
	*y= temp;
}// call by reference

void swap_reference(int &x, int &y){
	int temp = x;
	x=y;
	y=temp;
} // reference 매개 변수로 받음과 동시에 초기화하면서 같은 주소값을 갖게됨
int main(){
	int first =0, second = 1;
	cout<<"first="<<first<<"  "<<"second="<<second<<endl;
	cout<<"swap_pointer"<<endl;
	swap_pointer(&first, &second);// 매개 변수가 포인터 변수 임으로 주소값을 넘겨 줘야함.
	cout<<"first="<<first<<"  "<<"second="<<second<<endl;
	cout<<endl;

	cout<<"swap_reference"<<endl;
	swap_reference(first, second); // 매개변수가 reference임으로 그냥 변수 넘겨줌.
	cout<<"first="<<first<<"  "<<"second="<<second<<endl;
	cout<<endl;

	cout<<"call_by_value"<<endl;
	call_by_value(first,second);
	cout<<"first="<<first<<"  "<<"second="<<second<<endl;
	
	system("pause");
	return 0;
}
first=0  second=1
swap_pointer
first=1  second=0

swap_reference
first=0  second=1

call_by_value
first=0  second=1

'C++ 알고리즘 > 2. C++ 언어 review' 카테고리의 다른 글

템플릿  (0) 2019.09.01
힙 메모리 할당 c 와 c++  (0) 2019.09.01
래퍼런스 ( reference)  (0) 2019.09.01
포인터  (0) 2019.09.01

댓글