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

신승주님의 프로필 이미지
신승주

작성한 질문수

(2025) 일주일만에 합격하는 정보처리기사 실기

typedef 키워드

typedef 강좌

작성

·

198

1

4분05초쯤에,

(ㄱ)에는 -> 이게 이해가 가는데

(ㄴ)에도 -> 이거인가요?

d2가 포인터라서 -> 이렇게 접근하는건 알겠습니다

근데 *d2는 포인터에들어있는 값에서 접근하는거라서 저는 . 이라고 생각했는데 -> 이게 들어가는게 잘 이해가지 않습니다.

답변 2

1

주말코딩님의 프로필 이미지
주말코딩
지식공유자

안녕하세요, 여러 방면으로 생각하면서 공부하시는 모습 너무 멋있습니다.

 

정답을 말씀드리자면, 절반은 맞고 절반은 틀리셨다고 말씀드릴 수 있습니다.

*포인터명은 말씀해주신대로 포인터가 가리키고 있는 값을 가지고 오는 것입니다.

그런데 여기서는 읽을 때 *d2로 읽으면 안됩니다.

*(d2->numPtr)로 읽으셔야 합니다. 연산자 순서에 의해서 괄호를 넣거나 안 넣거나 똑같이 동작합니다.

 

해석을 하자면

d2라는 포인터가 가리키고 있는 값 (= Data라는 구조체)가진 numPtr이라는 포인터값(*)을 가져와라.

정도 되겠네요.

 

원래 C언어가 포인터가 포인터를 가리키고, 또 포인터가 포인터를 가리키고..

를 반복하면 해석하기가 난해해지는 언어이긴 합니다. 

 

이해에 도움이 되셨을지 모르겠습니다.

감사합니다.

0

저는 그 윗줄 *d1부터 의문이었는데 괄호로 감싸면 다 이해가 되는군요. 딱 고민하던 시점에 질문 리스트 바로 위에 이 내용이 있어서 놀랐습니다. 친절한 설명 감사합니다. 수강하길 잘했다는 생각이 듭니다.

주말코딩님의 프로필 이미지
주말코딩
지식공유자

화이팅입니다!😊

신승주님의 프로필 이미지
신승주

작성한 질문수

질문하기