포인터 배열은 포인터가 여러개 모여있는 ' 배열 '!!
배열 포인터는 배열을 가리키는 ' 포인터 '!!
먼저 포인터 배열을 사용하는 코드를 보자.
#include <stdio.h>
int main(void)
{
const char* arr[3];
int i;
arr[0] = "BlockDMask";
arr[1] = "C Programming";
arr[2] = "point_arr";
for (i = 0; i < 3; i++)
{
printf("arr[%d] -> %s\n", i, arr[i]);
}
return 0;
}
포인터 배열을 사용하여 포인터가 가리키는 위치에 값을 대입한다.
#include<stdio.h>
int main(void)
{
char(*arr)[3];
char tmp1[3] = { 'b', 'l', 'o' };
char tmp2[3] = { 'c', 'k', '\0' };
char tmp3[5] = { 'd', 'm', 'a', 's', 'k' };
printf("tmp1[3]의 주소 : %p\n", tmp1);
printf("tmp2[3]의 주소 : %p\n", tmp2);
printf("tmp3[5]의 주소 : %p\n", tmp3);
printf("\n"); printf("\n");
arr = &tmp1;
printf("arr의 주소 : %p\t 문자열 : ", arr);
for (int i = 0; i < (int)sizeof(*arr); i++)
{
printf("%c", (*arr)[i]);
}
printf("\n");
arr = &tmp2;
printf("arr의 주소 : %p\t 문자열 : ", arr);
for (int i = 0; i < (int)sizeof(*arr); i++)
{
printf("%c", (*arr)[i]);
}
printf("\n");
return 0;
}
포인터 배열과 배열 포인터가 이해가 가지 않아서 검색하던 중에 블로그의 도움을 받았다.
'PROGRAMMING LANGUAGE > C' 카테고리의 다른 글
19강 함수 포인터와 void 포인터 (0) | 2021.09.16 |
---|---|
18강 다중포인터 (0) | 2021.09.16 |
17강 다차원 배열 (0) | 2021.09.16 |
16강 포인터의 사용법 (0) | 2021.09.15 |
15강 포인터와 배열 그리고 상수화 (0) | 2021.09.15 |