Programming Learning Diary

포인터의 출력 예측하기.

페이지 정보

작성일 19-11-29 11:28

본문

1번



int arr[3][3] = { 3 }; //2차원 배열을 3으로 초기화

printf("%d\n",&arr);//arr의첫번째 주소 출력

printf("%d\n", arr);//arr의첫번째 주소 출력

printf("%d\n", *arr);//arr의첫번째 주소 출력

printf("%d\n", &arr[0]);//arr의첫번째 주소 출력

printf("%d\n", arr[0]);//arr의첫번째 주소 출력

printf("%d\n", *arr[0]);//arr의첫번째 값 출력

printf("%d\n", &arr[0][0]); //arr의첫번째 주소 출력

printf("%d\n", arr[0][0]);//arr의첫번째 값 출력


결과

d643a4d8f54376bf8d0ff6b8ac34929d_1574994518_0239.png


2번


int arr[3][3] = { 0 }; //2차원 배열을 3으로 초기화

printf("%d\n", &arr[0][0]); //arr의첫번째 주소 출력

printf("%d\n", arr[0]+1);   //arr의첫번째 다음주소 값 출력

printf("%d\n", &arr[0] + 1);//arr의두번째 행 주소 값 출력

printf("%d\n", arr + 1); //arr의두번째 행 주소 값 출력

printf("%d\n", &arr + 1); //arr배열이 끝난 주소의 다음 메모리 주소값


d643a4d8f54376bf8d0ff6b8ac34929d_1574995469_784.png
 


3번

int arr[3][4] = {  //3행 4열인 배열 정의

{1,2,3,4},

{5,6,7,8},

{9,10,11,12}

};

int(*ptr)[4] = arr; //배열 포인터 에 arr[0]  선언

for (int i = 0; i < 3;i++) {

for (int j = 0; j < 4; j++) {

printf("%d", ptr[i][j]); //행별로 출력

}

printf("\n");

 

}


결과

d643a4d8f54376bf8d0ff6b8ac34929d_1574996705_935.png
 


댓글목록

등록된 댓글이 없습니다.