Resolved
Written on
·
348
1
4분05초쯤에,
(ㄱ)에는 -> 이게 이해가 가는데
(ㄴ)에도 -> 이거인가요?
d2가 포인터라서 -> 이렇게 접근하는건 알겠습니다
근데 *d2는 포인터에들어있는 값에서 접근하는거라서 저는 . 이라고 생각했는데 -> 이게 들어가는게 잘 이해가지 않습니다.
Answer 2
1
안녕하세요, 여러 방면으로 생각하면서 공부하시는 모습 너무 멋있습니다.
정답을 말씀드리자면, 절반은 맞고 절반은 틀리셨다고 말씀드릴 수 있습니다.
*포인터명은 말씀해주신대로 포인터가 가리키고 있는 값을 가지고 오는 것입니다.
그런데 여기서는 읽을 때 *d2로 읽으면 안됩니다.
*(d2->numPtr)로 읽으셔야 합니다. 연산자 순서에 의해서 괄호를 넣거나 안 넣거나 똑같이 동작합니다.
해석을 하자면
d2라는 포인터가 가리키고 있는 값 (= Data라는 구조체)가 가진 numPtr이라는 포인터의 값(*)을 가져와라.
정도 되겠네요.
원래 C언어가 포인터가 포인터를 가리키고, 또 포인터가 포인터를 가리키고..
를 반복하면 해석하기가 난해해지는 언어이긴 합니다.
이해에 도움이 되셨을지 모르겠습니다.
감사합니다.
0
저는 그 윗줄 *d1부터 의문이었는데 괄호로 감싸면 다 이해가 되는군요. 딱 고민하던 시점에 질문 리스트 바로 위에 이 내용이 있어서 놀랐습니다. 친절한 설명 감사합니다. 수강하길 잘했다는 생각이 듭니다.
화이팅입니다!😊