drwolf1999   4년 전

2번째줄은 뭐하는 건가요? 포인터를 잘 안써서 잘 모르겠네요.....ㅠㅠ
sizeof(matp) 해보니깐 sizeof(mat)보다 작게 나오던데....부탁드립니다!!

djm03178   4년 전

mat가 int형 2차원 배열이니까, mat[a][b] 는 mat에 (a*N+b) * sizeof(int)만큼 떨어진 주소의 값과 같은 표현입니다.

이를 int형 포인터인 matp에 담는다는 건, 이 mat 전체를 1차원적인 관점에서 접근하겠다는 의도입니다.

예를 들어, matp[2 * N + 3]이라는 건 mat[2][3]에 접근하는 것과 같습니다.

sizeof(matp)는 크기가 컴파일 시간에 결정되는 상수이기 때문에, matp가 무엇을 가리키게 한다고 해서 크기가 달라지지 않습니다. int형 포인터의 크기가 나올 뿐입니다.

drwolf1999   4년 전

@djm03178 아하 그렇군요! 감사합니다!! 포인터공부 다시해야겠어요!

chogahui05   4년 전

아마도 sizeof(matp) 하면 포인터 변수의 크기가 나올 거에용~

댓글을 작성하려면 로그인해야 합니다.