MyStruct 구조체에 &를 붙인 이유는 무엇인가요?
338
작성한 질문수 8
안녕하세요. 올려주신 강의 잘 보고 있습니다.
이번에 작성하신 예시 중에서
함수인 display의 매개변수로 Mystruct&를 넣어주셨는데
혹시 &를 붙여준 이유가 있을까요?
&를 뺀 상태로 코드를 작성해도 같은 결과가 나오더라고요.
이전에 올려주신 강의인 참조 변수 강의를 보면
대상을 직접 할당한다고 설명해주셨는데,
Mystruct& temp나 Mystruct temp나
temp가 구조체로 선언한 Mystruct를 참조하는 변수? 라고 생각하면 똑같은거 아닌가 해서요.
Mystruct&라고 붙이면 temp는 Mystruct를 직접 할당한 변수 temp? 라고 생각이 들고
Mystruct temp는 구조체 Mystruct의 객체 temp라고 생각이 드네요.
약간 혼란스러운데, &를 붙이신 이유가 궁금합니다
답변 1
0
답변이 늦어져서 죄송합니다.
먼저 C++에서 &의 사용처부터 짚고 넘어가겠습니다.
- 표현식에서의 "주소"
- 참조
- 비트 AND 연산
질문해주신 사안처럼 표면적으로 들어나기엔 ampersand(&)를 사용하거나 사용하지 않거나 큰 차이가 없는 것 처럼 보일 수 있습니다.
추후에 포인터와 결합될 때 코드의 효율성/안정성에서 차이가 있습니다. 다시 생각해보니 습관적으로 붙여주었기에 이번 예제에서는 조금 헷갈리셨을 수 있을 것 같습니다.
효율성과 안정성이 적절한 단어 선택인지 잘 모르겠습니다. 아래 URL을 참조해보시면 지식을 정리하는 데 많은 도움이 될 것 같습니다 :)
https://stackoverflow.com/questions/2094666/pointers-in-c-when-to-use-the-ampersand-and-the-asterisk
null 문자가 포함되면 왜 뒤에 불필요한 것들이 사라지나요?
0
558
1
강의 중 궁금한게 있습니다.
0
405
0
포인터 연산 강의
0
374
1
강의중 궁금한 내용이 있습니다
2
489
3
(int*)이 어떤 원리인건지 잘 이해가 안되요 ㅜ
1
455
0
char형과 char 배열을 차이점이 뭔가요
0
390
0
오토를 맹신하지 말라는 것이 무슨 뜻인가요?
0
330
1
안녕하세요 class의 멤버함수에 관련하여 질문이 있습니다.
0
246
0
강의 잘 듣고있습니다. 그런데 소스코드에 오타가 있는듯합니다.
1
332
0
포인터를 증가시키거나 감소시킨 상태에서는 delete 사용이 불가능한가요?
0
459
0
const float PI =3.14159265; 로 선언하고 원의 넓이를 구할 때 궁금한 것이 있습니다.
0
658
1
iosteam 헤더 파일 중복
0
362
1
함수 뒤 세미콜론
0
321
0
함수는 원본이 아닌 복사본을 사용한다는 말에 대해서 질문있습니다
0
242
0
sizeof arr에서
0
415
3
포인터를 이용한 주소값이 이상합니다
0
288
1
바이트와 관련하여서 질문이 있습니다
0
257
1
출력이 안되요
0
278
0
마지막에 main.cpp 에서
1
263
0
예제코드 오타 있어요
1
204
0
함수의 대괄호 뒤에 ; 가 붙는것과 안뭍는것의 차이가 뭔가요?
0
219
0
new/delete 연산자
1
257
1
컴파일에러
1
282
1
string에서 문자열 길이
1
261
1





