프알못이라 구조체, 포인터 부분이 이해가 잘 안되서 한번 끄적이면서 정리해볼꼐여


1.

노드는 이렇게 생겼어여


struct listNode {

char data[4] <-- 요기가 데이터 부분

listPointer link; <-- 요기가 다음 데이터랑 이어주는 노드 간의 연결 고리에여

};


2.

근데 이렇게만 쓰면 listPointer 부분이 정의가 안되있어서 오류가 날꺼에여


struct listNode *listPointer; 를 먼저 선언해서


(마치 int *pointer;  double *ptr; 등등을 선언하는 것처럼,)


구조체 listNode 의 주소를 담을 수 있는 뽀인터 listPointer를 만들어주어요.


struct listNode *listPointer; 

struct listNode {

char data[4]

listPointer link; 

};


3. 

자꾸 사용하는데 귀찮아서 typedef 를 통해 쉽게 부르고싶어여


예문은 이렇게 되있는데


typedef struct listNode {            <-- typedef // struct listNode // ?  

char data[4];               

listPointer link;

};


typedef struct listNode *listPointer;   <-- 여기 부분이 잘 이해가 안되용

1. struct listNode의 포인터인 listPointer 를 뭐라고 부를지 적어줘아하지 않나여?

   typedef // struct listNode *listPointer // ??? 

   

띠용 확실히 정리하면서 해보니까 뭘 모르는지 자세히 알겠네용


1. typedef 를 사용할때


 typedef "타입" "별명" 이런식으로 적어줘하는게 아닌가여?


 typedef struct listNode *listPointer; 나


 typedef struct listNode { ... }; 이런식으로 적으면


 "타입"은 있는데 "별명"을 안정해준게 아닌가여?


 별명 부분을 지정하지 않으면 typedef를 사용하는 의미가 없지 않을까여?