게시판 즐겨찾기
편집
드래그 앤 드롭으로
즐겨찾기 아이콘 위치 수정이 가능합니다.
C언어 포인터 이론에 관하여 질문이 있어 글 올립니다!
게시물ID : programmer_2040짧은주소 복사하기
작성자 : 빵드료
추천 : 0
조회수 : 390회
댓글수 : 6개
등록시간 : 2014/03/22 14:38:39
안녕하세요. 
이전에 C언어 끝냈다고 뭘 해볼까요하고 글올렸다가 아 끝낸게 아니구나 하고 다시 한번 파보고 있습니다.
역시나 C언어는 포인터죠.. 포인터에서 막힙니다. 삼차원 배열...에서요..

아래 코드에서 ( 굵은 부분으로 표시해두었습니다. )
"ap[i][1][j] =1" 문장은 i(0~8)가 1씩 증가할때 int형 3*3(9개)만큼 건너뛰고 j(0~2)가 1씩 증가할 때 int형 1개씩 건너뛴 메모리를 1로 만든다.
라고 책에 설명이 되어있는데 이 문장 자체가 도저히 이해가 안가네요.

printf로 주소를 다 출력해 보았을때 주소가 위에서 지정한 만큼 건너띄어 생성되는건 확인하였습니다..
하지만 출력이 왜 저렇게 나오는지 도대체 도저히 이해가 안가는군요......

혹 조금 알기쉽게 설명해주실 분이 있을까요?

감사합니다.

즐거운 주말 보내세요.


코드

#include

#include


typedef int (*arr3)[3][3];

typedef int (*arr9)[9];


void arrprint();


int main()

{

    int arr[9][9];

    arr3 ap3; // int (*ap3)[3][3];

    int i;

    int j;

    

    memset(arr,0,sizeof(int)*9*9);

    arrprint(arr);

    

    ap3=(arr3)arr;

    

    for(i=0; i<9; i++){

        for(j=0; j<3; j++){

            ap3[i][1][j]=1;

        }

    }

    

    arrprint(arr);

    


    for(i=0; i<9; i++){

        for(j=0; j<3; j++){

            ap3[3][i][j]=1;

        }

    }

    

    arrprint(arr);

    


    for(i=3; i<6; i++){

        for(j=0; j<3; j++){

            ap3[i][1][j]=3;

        }

    }

    arrprint(arr);

}


void arrprint(arr9 arr)

{

    int i;

    int j;

    

    for(i=0; i<9; i++)

    {

        for(j=0; j<9; j++)

        {

            printf("%3d",arr[i][j]);

        }

        puts("");

    }

}


출력

  0  0  0  0  0  0  0  0  0

  0  0  0  0  0  0  0  0  0

  0  0  0  0  0  0  0  0  0

  0  0  0  0  0  0  0  0  0

  0  0  0  0  0  0  0  0  0

  0  0  0  0  0  0  0  0  0

  0  0  0  0  0  0  0  0  0

  0  0  0  0  0  0  0  0  0

  0  0  0  0  0  0  0  0  0

======================

  0  0  0  1  1  1  0  0  0

  0  0  0  1  1  1  0  0  0

  0  0  0  1  1  1  0  0  0

  0  0  0  1  1  1  0  0  0

  0  0  0  1  1  1  0  0  0

  0  0  0  1  1  1  0  0  0

  0  0  0  1  1  1  0  0  0

  0  0  0  1  1  1  0  0  0

  0  0  0  1  1  1  0  0  0

======================

  0  0  0  1  1  1  0  0  0

  0  0  0  1  1  1  0  0  0

  0  0  0  1  1  1  0  0  0

  1  1  1  1  1  1  1  1  1

  1  1  1  1  1  1  1  1  1

  1  1  1  1  1  1  1  1  1

  0  0  0  1  1  1  0  0  0

  0  0  0  1  1  1  0  0  0

  0  0  0  1  1  1  0  0  0

======================

  0  0  0  1  1  1  0  0  0

  0  0  0  1  1  1  0  0  0

  0  0  0  1  1  1  0  0  0

  1  1  1  3  3  3  1  1  1

  1  1  1  3  3  3  1  1  1

  1  1  1  3  3  3  1  1  1

  0  0  0  1  1  1  0  0  0

  0  0  0  1  1  1  0  0  0

  0  0  0  1  1  1  0  0  0

======================


전체 추천리스트 보기
새로운 댓글이 없습니다.
새로운 댓글 확인하기
글쓰기
◀뒤로가기
PC버전
맨위로▲
공지 운영 자료창고 청소년보호