C언어 배열 에 관해서.. <포인터>
글쓴이: milk901 / 작성시간: 토, 2014/03/15 - 4:20오후
안녕하세요 선배님들 궁금한게 있어서 글 올립니다.
이 부분에서 printf 문의 2번째 답이 -3이 나오는데 이 답이 이해가 잘 안됩니다..
왜 2번째 printf 문의 답이 -3인지 알려주시면 정말 감사하겠습니다.
int a[2][3] = {{-3,14,5},{1,-10,8}};
int *b[] = {a[0],a[1]};
int *p = b[1];
printf("%d ", (*b[1]));
printf("%d ", *(--p -2));
printf("%d ", *(*(a+1)+1));
Forums:
a | -3 | 14 | 5 | 1 | -10 |
p는 int * 이니 +1 또는 -1을 할 때마다 int 크기만큼 증가 또는 감소하고,
--p 해서 1감소, 또 -2 해서 2감소 하면 int 3개 크기만큼 감소하여
-3 이 저장된 주소값이 됩니다.
좋은 하루 되세요!
오! 정말 감사합니다 좋은 하루 되세요!
오! 정말 감사합니다
좋은 하루 되세요!
댓글 달기