|
보통 포인터를 얘기할때 *와 &를 덕지덕지 붙여서 쓰지도 않는 코드를
만들어놓고 포인터에 대해서 가르치는 경우가 많습니다.
물론 아래 코드도 절대 쓰면 안되는 코드지만(오버인덱스어레이)
깔끔하면서도 포인터를 이해하는데 도움이 될꺼같은 문제인거 같습니다.
step1은 풀어보시면되고 step2와 step3는 아신다면 step3를 먼저 풀어보셔도
전혀 상관없지만 모르시는분은 step2부터 풀어보시는게 좋을꺼 같습니다.
정답은 아래쪽에 있습니다.
효과가 검증이 안됬기 때문에 너무 붙들고 있지는 마세요.
step1 => 모두 '12' 출력
step2,3 => 모두 '123' 출력
#include <stdio.h>
#include <conio.h>
void main(void)
{
int a[2][3];
int b[2][3][4];
clrscr();
a[1][2] = 12;
b[1][2][3] = 123;
// step1
printf("%d\n", a[1][2]);
printf("%d\n", a[2][?]);
printf("%d\n", a[3][?]);
printf("%d\n", a[4][?]);
printf("%d\n", a[5][?]);
// step2
printf("%d\n", b[1][2][3]);
printf("%d\n", b[2][3][?]);
printf("%d\n", b[3][4][?]);
printf("%d\n", b[4][5][?]);
printf("%d\n", b[5][6][?]);
// step3
printf("%d\n", b[1][?][-1]);
printf("%d\n", b[2][-3][?]);
printf("%d\n", b[3][?][7]);
printf("%d\n", b[4][-3][?]);
printf("%d\n", b[5][?][-41]);
getch();
}
<정답>
// step1
printf("%d\n", a[1][2]);
printf("%d\n", a[2][-1]);
printf("%d\n", a[3][-4]);
printf("%d\n", a[4][-7]);
printf("%d\n", a[5][-10]);
// step2
printf("%d\n", b[1][2][3]);
printf("%d\n", b[2][3][-13]);
printf("%d\n", b[3][4][-29]);
printf("%d\n", b[4][5][-45]);
printf("%d\n", b[5][6][-61]);
// step3
printf("%d\n", b[1][3][-1]);
printf("%d\n", b[2][-3][11]);
printf("%d\n", b[3][-5][7]);
printf("%d\n", b[4][-3][-13]);
printf("%d\n", b[5][1][-41]);
|