(문제와는 관련 없음)
❓ int argc
메인 함수에 전달되는 정보의 갯수를 의미한다
❓ char *argv[]
메인함수에 전달되는 실질적 정보이고, 문자열의 배열을 의미한다, 첫번째 문자열은 항상 프로그램의 실행경로로 고정되어 있다
❓ int arr[2][3]={1,2,3,4,5,6}
크기가 3인 배열들을 갖는 크기가 2인 int로 된 배열을 선언, 해당 2차원 배열의 단말에 1,2,3,4,5,6을 순서대로 할당 (구조분해할당?)
❓ int (*p)[3]=NULL
3개의 int값을 담는 배열의 주소를 담을 수 있는 포인터를 null로 초기화, arr을 담기 위한 포인터를 정의
❓ p=arr
인덱스가 없는 배열 이름은 배열의 시작주소(arr[0])을 의미하며 그 주소에 +n을 하게되면 배열의 n번째 인덱스의 주소를 얻을 수 있다
p에는 arr[0]의 주소가 들어간 셈
❓ printf("%d, ", *(p[0]+1) + *(p[1]+2))
*(p[0]+1) + *(p[1]+2) 👉 arr[0][1] + arr[1][2] 👉 2 + 6
❓ printf("%d", *(*(p+1)+0) + *(*(p+1)+1))
*(*(p+1)+0) + *(*(p+1)+1) 👉 *(arr[1]+0) + *(arr[1]+1) 👉 arr[1][0] + arr[1][1] 👉 4 + 5