728x90
반응형
# include <stdio.h>
// 포인터의 배열
int main()
{
int arr[2][3] ={{1,2,3},{4,5,6}};
int* ptr[2] ={arr[0],arr[1]};
int i,j;
// ptr[0] = arr[0][0] = 1, arr[0][1] = 2, arr[0][2] = 3
// ptr[1] = arr[1][0] = 4, arr[1][1] = 5, arr[1][2] = 6
for(i = 0; i<2; i++)
{
for(j = 0; j<3; j++)
{
printf("%d (==%d, %d) ",ptr[i][j], *(ptr[i]+j), *(*(ptr+i)+j)); // 3가지 방식 모두 가능.
} // 동적할당시에는 *(*(ptr+i)+j) 방식을 많이 사용한다.
printf("\n");
}
printf("\n%p\n",&ptr[0]); // 포인터변수 자체의 주소
printf("%p\n",ptr[0]); // ptr변수 [0]이 가리키고 있는 주소
printf("%p\n",arr); // 배열 대표 주소
printf("%p\n",&arr[0]); // 배열의 arr[0] 주소는 배열의 대표 주소
printf("%p\n",&arr[1]); // 배열의 arr[1]의 주소
printf("%p\n",&arr[0][0]); // &arr[0][0] == &arr[0]
printf("%p\n",arr[0][0]);
printf("%p\n",**arr); // arr[0][0]과 == **arr 은 주소가 같다.
return 0;
}
* 배열의 메모리의 경우 순서대로 받는다.
arr == arr[0] == &arr[0] == &arr[0][0] != arr[0][0]
arr[0][0] == **arr
출처 : 인프런 - 홍정모의 따라하며 배우는 C
728x90
반응형
최근댓글