인프런 커뮤니티 질문&답변

지우님의 프로필 이미지

작성한 질문수

홍정모의 따라하며 배우는 C++

6.15 참조와 const

레퍼런스 const 질문

23.08.23 16:19 작성

·

284

1

void doSomething(const int& x)

{

cout << x << endl;

}

이 경우 값을 바로 넣어도 되기 때문에 굉장히 편해진다고 하시는데, 이 경우 굳이 const int x로 해도 똑같지 않나요??

파라미터를 const int& x로 받으면 편해진다는 것이 잘 이해가 되지 않아 물어봅니다.

답변 1

4

Soobak님의 프로필 이미지

2023. 08. 23. 18:55

안녕하세요, 답변 도우미 Soobak 입니다.

변수의 복사 유무에 대한 차이점이 있습니다.

void doSomthing(const int x) 와 같이 사용하는 경우, 함수 내부에서 x 에 대한 복사가 일어납니다.

void doSomthing(const int& x) 와 같이 사용하는 경우, 함수 내부에서 x 에 대한 복사가 일어나지 않으며, 함수 내부에서 실수로 x 를 수정할 수도 없습니다.

또한, 만약 매개변수의 자료형이 큰 사이즈의 구조체나 클래스인 경우, 복사를 피하는 것이 속도 측면에서도 이점을 얻을 수 있습니다.

지우님의 프로필 이미지

작성한 질문수

질문하기