c언어 프로그래밍중에 "->"라는 수식이 나오는데 개념을 잘 모르겠습니다.
쳐보니 구조체포인터이름-> 맴버이름 = (*구조체 포인터이름).맴버이름 이라고 나오는데
next 가 포인터 이름인가요?
포인터가 구조체의 이름인가요 ㅜ
네이버에서 설명할때 "(*구조체 포인터이름).맴버이름 " 이렇게 표현되어있는데
"."은 함수를 이용할때만 사용하는걸로 알고있습니다.
337쪽에
struct NODE *Next;(여기서 *부터 이해가 안감니다 구지 *를 안써도 될꺼같은데..)
그리고 end, head ,free,del 은 어디에도 선언되지 않았는데 사용되고있습니다 ㅜ
구조체를 사용하면 사용할수있는 객체,함수 인가요 ㅜㅜ
무슨소리인지 감이안잡힙니다ㅜ
첫번째 질문은 포인터가 무엇인지에 궁금함이고요
두번째 질문은 구조체포인터이름-> 맴버이름 = (*구조체 포인터이름).맴버이름 이것이 어떻게 성립하는지입니다, (구조체가 함수의 개념인지 아닌지)
세번째 질문은 end,head,end, free ,del 이 무엇이지입니다.
java는 1년넘게해서 java의 예로 설명해주시면 쉽게 알아들을것 같습니다 ㅜ
안녕하세요 길벗수험서 운영팀입니다.
[1]
포인터 함수에 대해서는 교재 77쪽을 참조해주세요.
해당 자료형의 메모리 위치를 저장하는 변수가 포인터 변수입니다.
[2]
-> 기호는 구조체 포인터 변수에서 구조체 내의 각 변수들을 가리키는 방법에 해당합니다.
교재 84~85쪽을 참고하세요.
85쪽에 sawon 구조체 변수 data를 일반 구조체로 선언했지만,
이것을 포인터를 통해 *data로 선언했다면
아래에서 각 변수들을 가리킬 때, data.name이 아니라 data->name을 사용해서 가리켜야 합니다.
[3]
먼저 end, head, del의 경우 구조체 NODE의 포인터변수 입니다.
head의 경우 전역 위치에서 선언되었으며(7번째 줄)
end의 경우 사용자정의함수 Push 내에서 선언되었고,
del의 경우 사용자정의함수 Pop에서 선언되었습니다.
각기 역할은 head의 경우 노드의 첫 위치를 가리키는 역할
end의 경우 노드에 새 노드를 추가하기 위해 임시적으로 사용하는 포인터 구조체
del의 경우 노드를 삭제하기 위해 임시적으로 사용하는 포인터 구조체 입니다.
포인터의 경우 java로 설명드리기가 어렵습니다 ㅠ java에는 포인터 개념이 없기 때문이죠.
전형적인 스택 알고리즘이라는 것을 염두에 두시고, 해설을 참조하여 포인터 개념을 확실히 잡아두세요.
행복한 하루되세요 :)
-
관리자2019-04-01 11:32:24
안녕하세요 길벗수험서 운영팀입니다.
[1]
포인터 함수에 대해서는 교재 77쪽을 참조해주세요.
해당 자료형의 메모리 위치를 저장하는 변수가 포인터 변수입니다.
[2]
-> 기호는 구조체 포인터 변수에서 구조체 내의 각 변수들을 가리키는 방법에 해당합니다.
교재 84~85쪽을 참고하세요.
85쪽에 sawon 구조체 변수 data를 일반 구조체로 선언했지만,
이것을 포인터를 통해 *data로 선언했다면
아래에서 각 변수들을 가리킬 때, data.name이 아니라 data->name을 사용해서 가리켜야 합니다.
[3]
먼저 end, head, del의 경우 구조체 NODE의 포인터변수 입니다.
head의 경우 전역 위치에서 선언되었으며(7번째 줄)
end의 경우 사용자정의함수 Push 내에서 선언되었고,
del의 경우 사용자정의함수 Pop에서 선언되었습니다.
각기 역할은 head의 경우 노드의 첫 위치를 가리키는 역할
end의 경우 노드에 새 노드를 추가하기 위해 임시적으로 사용하는 포인터 구조체
del의 경우 노드를 삭제하기 위해 임시적으로 사용하는 포인터 구조체 입니다.
포인터의 경우 java로 설명드리기가 어렵습니다 ㅠ java에는 포인터 개념이 없기 때문이죠.
전형적인 스택 알고리즘이라는 것을 염두에 두시고, 해설을 참조하여 포인터 개념을 확실히 잡아두세요.
행복한 하루되세요 :)