작성
·
240
1
안녕하세요. 올려주신 강의 잘 보고 있습니다.
이번에 작성하신 예시 중에서
함수인 display의 매개변수로 Mystruct&를 넣어주셨는데
혹시 &를 붙여준 이유가 있을까요?
&를 뺀 상태로 코드를 작성해도 같은 결과가 나오더라고요.
이전에 올려주신 강의인 참조 변수 강의를 보면
대상을 직접 할당한다고 설명해주셨는데,
Mystruct& temp나 Mystruct temp나
temp가 구조체로 선언한 Mystruct를 참조하는 변수? 라고 생각하면 똑같은거 아닌가 해서요.
Mystruct&라고 붙이면 temp는 Mystruct를 직접 할당한 변수 temp? 라고 생각이 들고
Mystruct temp는 구조체 Mystruct의 객체 temp라고 생각이 드네요.
약간 혼란스러운데, &를 붙이신 이유가 궁금합니다
답변 1
0
답변이 늦어져서 죄송합니다.
먼저 C++에서 &의 사용처부터 짚고 넘어가겠습니다.
질문해주신 사안처럼 표면적으로 들어나기엔 ampersand(&)를 사용하거나 사용하지 않거나 큰 차이가 없는 것 처럼 보일 수 있습니다.
추후에 포인터와 결합될 때 코드의 효율성/안정성에서 차이가 있습니다. 다시 생각해보니 습관적으로 붙여주었기에 이번 예제에서는 조금 헷갈리셨을 수 있을 것 같습니다.
효율성과 안정성이 적절한 단어 선택인지 잘 모르겠습니다. 아래 URL을 참조해보시면 지식을 정리하는 데 많은 도움이 될 것 같습니다 :)
https://stackoverflow.com/questions/2094666/pointers-in-c-when-to-use-the-ampersand-and-the-asterisk