책 내용 질문하기
포인터의 개념
도서
2019 시나공 정보처리기사 실기(산업기사포함)
페이지
337
조회수
664
작성일
2019-03-30
작성자
탈퇴*원
첨부파일

c언어 프로그래밍중에 "->"라는 수식이 나오는데 개념을 잘 모르겠습니다. 

쳐보니 구조체포인터이름-> 맴버이름 = (*구조체 포인터이름).맴버이름 이라고 나오는데

next 가 포인터 이름인가요?

포인터가 구조체의 이름인가요 ㅜ

네이버에서 설명할때 "(*구조체 포인터이름).맴버이름 " 이렇게 표현되어있는데 

"."은 함수를 이용할때만 사용하는걸로 알고있습니다.

337쪽에

struct NODE *Next;(여기서 *부터 이해가 안감니다 구지 *를 안써도 될꺼같은데..)

그리고 end, head ,free,del 은 어디에도 선언되지 않았는데 사용되고있습니다 ㅜ

구조체를 사용하면 사용할수있는 객체,함수 인가요 ㅜㅜ

무슨소리인지 감이안잡힙니다ㅜ

첫번째 질문은 포인터가 무엇인지에 궁금함이고요

두번째 질문은 구조체포인터이름-> 맴버이름 = (*구조체 포인터이름).맴버이름 이것이 어떻게 성립하는지입니다, (구조체가 함수의 개념인지 아닌지)

세번째 질문은 end,head,end, free ,del 이 무엇이지입니다.

 

java는 1년넘게해서 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에는 포인터 개념이 없기 때문이죠.

전형적인 스택 알고리즘이라는 것을 염두에 두시고, 해설을 참조하여 포인터 개념을 확실히 잡아두세요.

 

행복한 하루되세요 :)

  • 관리자
    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에는 포인터 개념이 없기 때문이죠.

    전형적인 스택 알고리즘이라는 것을 염두에 두시고, 해설을 참조하여 포인터 개념을 확실히 잡아두세요.

     

    행복한 하루되세요 :)

· 5MB 이하의 zip, 문서, 이미지 파일만 가능합니다.
· 폭언, 욕설, 비방 등은 관리자에 의해 경고없이 삭제됩니다.