본문 바로가기

프로그래밍/C, C++, C#

배열에서의 주소표현


배열에서의 주소표현

1차원 배열
  int array[3] = {1,2,3};
 1
 2
 3

array[0]의 주소는 &array[0], array + 0
array[1]의 주소는 &array[1], array + 1
array[2]의 주소는 &array[2], array + 2

값 표시는
array[0], *(array+0), *(&array[0])
array[1], *(array+1), *(&array[1])
array[2], *(array+2), *(&array[2])



2차원 배열
int array[2][3] = {1,2,3,4,5,6};
1 2


array[0][0]의 주소표현은 array, &array[0][0], array[0], *(array+0)
array[0][1]의 주소표현은 &array[0][1], array[0]+1, *(array+0)+1
array[0][2]의 주소표현은 &array[0][2], array[0]+2, *(array+0)+2

array[1][0]의 주소표현은 array+1, &array[1][0], array[1], *(array+1)
array[1][1]의 주소표현은 &array[1][1], array[1]+1, *(array+1)+1
array[1][2]의 주소표현은 &array[1][2], array[1]+2, *(array+1)+2


값 표시는
array[0][0], *(*(array)), *(array[0]), *&array[0][0]
array[0][1], *(*(array)), *(array[0]), *&array[0][0]
array[0][2], *(*(array)), *(array[0]), *&array[0][0]

array[1][0], *(*(array+1)+0), *(array[1]+0), *&array[1][0]
array[1][1], *(*(array+1)+1), *(array[1]+1), *&array[1][1]
array[1][2], *(*(array+1)+2), *(array[1]+2), *&array[1][2]