본문 바로가기
C C++/C언어 기초

C언어 - 포인터 배열의 이해 : 포인터 변수로 이뤄진 배열

by Go! Jake 2022. 5. 2.

앞 서 우리는 포인터와 배열의 관계에 대해 살펴 보았습니다. 이번에는 주소 값의 저장이 가능한 배열로 '포인터 배열'을 살펴보도록 하겠습니다.

포인터 배열이란

포인터 배열은 주소 값이 저장 가능한 배열이며 포인터 변수로 이루어져 있습니다. 선언 방식은 배열의 선언 방식에서 * 연산자를 추가한 것이라고 보면 됩니다.

 

int와 double의 포인터 배열 선언은 아래와 같다.

int* arr1[20];

double* arr2[20];

 

예시를 살펴보도록 하자.

#include <stdio.h>

int main(void)
{
	int num1 = 10, num2 = 20, num3 = 30;
	int* arr[3]={&num1, &num2, &num3};
	
	printf("%d \n", *arr[0]);
	printf("%d \n", *arr[1]);
	printf("%d \n", *arr[2]);
	
	return 0;
}

int* arr[3]; 을 통해 int형 포인터 배열이 선언되었습니다. 그리고 해당 배열 내용으로는 &num1, &num2, &num3으로 주소 값이 저장되어 있음을 알 수 있습니다.

 

문자열 포인터 배열

문자열 배열에 대해 알아보자. 말 그대로 문자열로 이루어진 배열임을 알 수 있다. 지난 번 우리는 문자열을 포인터를 이용해 가리키는 것을 알 수 있었습니다.

 

char* strArr[3]; // 길이가 3인 char형 포인트 배열

char* strArr[3] = {"Simple", "String", "Array"};

" " 큰 따옴표 사이에서 표현되는 문자열은, 메모리 공간에 저장된 후 그 주소 값이 반환됩니다. 따라서 따로 주소 처리를 할 필요가 없습니다.

해당 내용은 윤성우 열혈 C프로그래밍을 참조하였습니다.

댓글