블로그 이미지
하루, 글. 그림. 영상매체. 표현을 도와주는 기기들. 도전 중. 동화다아아
    동화다아아

    카테고리

    분류 전체보기 (176)
    잡담 (1)
    IT 기기-리뷰&뉴스 (7)
    리뷰 - 도서 (1)
    리뷰 - 영상 (0)
    리뷰 - 그림/음악 (1)
    내장형 하드웨어 (163)
    Total
    Today
    Yesterday
    - 배열 포인터 복습
    int A[30];
    int *P = A;
    는 성립하나.

    int A[5][3];
    int **P = A; 는 잘못되었다.

     → 배열과 포일터를 같이 쓸 수 있는 것은 1차원일 때 뿐이다.
     → 포인터는 1차원 용으로 2차원을 가리킬 수 없다.
     → 포인터는 원소를 가리키며 **P는 *P를 가리킨다.
     → 포인터는 한개만을 가리키기 위한 것이다.

    int *A[3]; 이면
    int **P = A; 로 가리킬 수 있다.
     → 가리킬 대상을 확인해야 한다.
     → 컴파일러의 경우 배열크기를 정확히 계산하지 않으므로(신경쓰지 않으므로) 잘 생각해야 한다.
     → 여기서 대상(int *)를 *P가 가리키는 것이다.
    int ***PP = P;
     → 여기서 대상(int **)를 *PP가 가리키는 것이다.
     → 대상을 가리키면 모두 원 포인터(포인터의 개념은 1차원)

    int A[5][3];  → int (*)[3];
    int (*P)[3] = A;  → 포인터로 2차월 배열의 접근 방법
      int (*new2)[2]= new int[3][2];
      int (*new3)[2][5]= new int[3][2][5];

      delete [] new2;
      delete [] new3;

     → 위와 같은 방법으로 2차원, 3차원... 배열을 포인터로 접근할 수 있다.

    ※ C++은 조그만 문법이라도 검사하므로 조심해야 한다.
    Posted by 동화다아아
    , |

    최근에 달린 댓글

    최근에 받은 트랙백

    글 보관함