본문 바로가기
코드/C++

참조 (Ampersand)

by bongin 2022. 7. 27.
728x90
반응형
#include <iostream>
#include <string>

/* param에 5를 복사하고 이 param을 func_Amp에 매개변수로 전달(복사 아님)한다.
int& a = param이 되고 param에 a 별명을 붙여준다.
func_Amp는 별명을 반환하는 함수다.
*/

int& func_Amp(int& a) //주소 받을 때는 int* a
{
	return a;
}

int main()
{
	//param을 바꿨을 때 temp도 값이 바뀜
	int param = 5;
	int &temp = func_Amp(param); //별명을 반환
	std::cout<< "param = " << param << ", temp = " << temp << std::endl;//5, 5
	param = 7;
	std::cout<< "param = " << param << ", temp = " << temp << std::endl;//7, 7

	//meter을 바꿔도 stroage는 안바뀜
	int meter = 5;
	int stroage = func_Amp(meter); //meter을 바꿔도 temp가 안변함, 값을 복사 반환, 오류가 나야 되는데
	std::cout << "meter = " << meter << ", stroage = " << stroage << std::endl;//5, 5
	meter = 7;
	std::cout<< "meter = " << meter << ", stroage = " << stroage << std::endl;//7, 5
}
728x90
반응형

'코드 > C++' 카테고리의 다른 글

개발 일지  (0) 2022.07.28
GetPixel  (0) 2022.07.27
함수 재정의와 함수 오버라이딩(virtual)  (0) 2022.07.27
pixel color fast  (0) 2022.07.27
section .bss  (0) 2022.07.27

댓글