Software/Embedded system

Pointer in C 해석 포인터배열& 배열포인터

neovaga 2022. 12. 20. 23:56

포인터를 해석하는 방법도 헷갈릴때가 많더라. 조금만 방심하면 이걸 어떻게 읽을까? 영어로 설명을 할때는 뭐라고 해야 할까는 또 다른 고민이더라 그래서 한국말을 잘 하는 사람이 영어도 잘하는 모양이다. 

  • int ***ptr[5];  //포인터 배열, 배열의 요소로 포인터변수를 가지게 된다. 배열의 값에 주소값이 들어간다는 것이다.
    • 먼저 변수인 ptr 를 먼저 읽는다. 
    • 그 다음에 포인터를 읽을지 [5] 배열을 읽을지 결정을 해야한다. 이 경우에는 오른쪽을 먼저 읽고 왼쪽으로 넘어간다. 그래서 배열이 우선순위가 있기에 ptr은 인덱스가 5인 배열이다. 
    • 그 다음은 왼쪽에 있는 포인터를 읽어주고 데이터 타입을 붙여주면 된다. 
    • ptr 은 int 형 타입의 변수 인덱스가 5인 배열에 포인터에 포인터에 포인터인 변수다.
    • ptr is array of 5 pointers to a pointer to pointer to int variable. 
  • int (*ptr)[5]; //배열 포인터, 배열에는 실제 변수값을 가지고 있고 이걸 가르치는 주소의 포인터를 의미한다. 2차원 이상의 배열에 쓴다.
    • (ptr+1) == ptr[1]

반응형