포인터의 출력 예측하기.
페이지 정보
작성일 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의첫번째 값 출력
결과
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배열이 끝난 주소의 다음 메모리 주소값
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");
}
결과
- 이전글c++을 배우는 이유. 19.12.02
- 다음글10*10 이하의 정수형 이차원 배열을 입력받아, 그 배열의 각 행의 요소의 합을 출력하는 프로그램을 만들어보세요. 19.11.29
댓글목록
등록된 댓글이 없습니다.