23.08.23 16:19 작성
·
284
1
void doSomething(const int& x)
{
cout << x << endl;
}
이 경우 값을 바로 넣어도 되기 때문에 굉장히 편해진다고 하시는데, 이 경우 굳이 const int x로 해도 똑같지 않나요??
파라미터를 const int& x로 받으면 편해진다는 것이 잘 이해가 되지 않아 물어봅니다.
답변 1
4
안녕하세요, 답변 도우미 Soobak 입니다.
변수의 복사 유무에 대한 차이점이 있습니다.void doSomthing(const int x)
와 같이 사용하는 경우, 함수 내부에서 x
에 대한 복사가 일어납니다.void doSomthing(const int& x)
와 같이 사용하는 경우, 함수 내부에서 x
에 대한 복사가 일어나지 않으며, 함수 내부에서 실수로 x
를 수정할 수도 없습니다.
또한, 만약 매개변수의 자료형이 큰 사이즈의 구조체나 클래스인 경우, 복사를 피하는 것이 속도 측면에서도 이점을 얻을 수 있습니다.