강의

멘토링

로드맵

Inflearn brand logo image

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

대식님의 프로필 이미지
대식

작성한 질문수

10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트

[필독] 알고리즘 교안 공부하는 방법

&*의 의미

작성

·

71

·

수정됨

0

안녕하세요 . 10주 완성 알고리즘 교안 보는중입니다.

&의 경우 변수의 메모리 주소를 저장할 때 사용

* 의 경우 변수에 저장된 주소에 실제 어떤 값이 들어있는지 확인할때 사용 인거같은데,

도대체 &*의 의미가 무엇인가요? 교안 103page입니다.

 

python은 골드정도되어서 강의를 사서 들었는데, c++ 기본에 대한 설명이 너무 부족한거같네요.. 교안만 보면 베이스 지식을 요구하는 부분이 너무 많습니다.

답변 2

0

큰돌님의 프로필 이미지
큰돌
지식공유자

안녕하세요 대식님 ㅎㅎ

먼저 &와 *에 대해 다시 설명드리겠습니다.

C/C++에서 사용되는 &* 연산자는 서로 반대되는 역할을 합니다.

  • & 연산자: 변수의 주소를 구하는 데 사용됩니다.

  • * 연산자: 포인터가 가리키는 값(역참조)을 얻을 때 사용됩니다.

즉, 만약 어떤 포인터 p가 있을 때,

  • p 자체는 변수 x의 주소를 저장한다고 할 수 있습니다.

  • *p는 그 주소에 저장된 실제 (예를 들어, x의 값)을 참조합니다.

&와 *의 결합: &*

&*는 이 두 연산자가 결합된 형태로, 아래와 같은 순서로 연산됩니다.

  1. * 연산자 먼저 적용:
    *p를 통해 포인터 p가 가리키는 메모리 위치에 저장된 에 접근합니다.

  2. & 연산자 적용:
    그 다음, &(*p)를 통해 위에서 얻은 값의 주소를 구합니다.

그런데, 포인터 p가 이미 어떤 변수의 주소를 저장하고 있기 때문에,
&(*p)를 구하면 원래 포인터 p가 저장하고 있던 주소와 동일한 값이 나오게 됩니다.

 

참고로 해당 부분에 대한 포인터, 메모리에 대한 부분은 0주차 강의내에서 자세히 설명을 드리고 있습니다.

다음의 강의부터 쭉 메모리에 대한 얘기가 있는데 참고부탁드립니다.

[필수개념] 메모리와 포인터(pointer) #1 메모리와 주소

 

c++ 기본에 대한 설명이 너무 부족한거같네요.. 교안만 보면 베이스 지식을 요구하는 부분이 너무 많습니다.

-> 혹시 어떤 부분이 부족한것 같나요? 말씀해주시면 보완하겠습니다.

 

 


 

또 질문 있으시면 언제든지 질문 부탁드립니다.

좋은 수강평과 별점 5점은 제게 큰 힘이 됩니다. :)

감사합니다.

강사 큰돌 올림.

0

안녕하세요, 인프런 AI 인턴입니다. 대식님!

C++의 &* 연산자에 대해 궁금하신 점에 대한 이해를 돕기 위해 간단히 설명을 드리겠습니다.

  • &는 주소 연산자로, 변수의 메모리 주소를 반환합니다. 예를 들어, int a = 5;에서 &a는 a의 메모리 주소입니다.
  • *는 역참조 연산자로, 포인터가 가리키는 주소에 저장된 값을 반환합니다. 예를 들어, int *p = &a;에서 *p는 a의 값을 반환합니다.

그렇다면 &*x는 무엇일까요? 이는 두 연산자를 연속해서 사용하는 경우로, *를 통해 포인터가 가리키는 값을 참조한 다음, 다시 &를 통해 그 값의 주소(즉, 원래의 포인터 값)를 반환합니다. 결국, &*는 실질적으로 원래의 포인터와 동일한 결과를 얻게 됩니다. 이는 크게 의미가 없으며, 주로 실수로 발생하는 코드입니다.

사라지 않아 보이는 개념이지만, 실제로는 기본을 이해하는 데 있어 중요한 부분입니다. &*는 기본적으로 서로를 상쇄하게 되기 때문에 코드 내에서 필요한 경우는 드뭅니다.

만일 이 설명이 충분하지 않거나 추가적인 설명이 필요한 경우, 관련 포인터와 메모리 주소에 대한 추가 자료를 참조하실 것을 권장드립니다. 이 링크에 포인터 관련해서 도움을 받을 수 있는 다른 답변도 참고하실 수 있습니다.

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

대식님의 프로필 이미지
대식

작성한 질문수

질문하기