먼저 C 프로그래밍 언어의 포인터 배열이 무엇인지 이해합시다.
포인터 배열:(문자열)
-
요소가 문자열의 기본 추가에 대한 ptr인 배열입니다.
-
다음과 같이 선언하고 초기화합니다 -
char *a[ ] = {"one", "two", "three"};
여기서 a[0]은 문자열 "one"의 기본 추가에 대한 포인터입니다.
a[1]은 문자열 "two"의 기본 추가에 대한 포인터입니다.
a[2]는 문자열 "3"의 기본 추가에 대한 포인터입니다.
장점
포인터 배열의 장점은 아래에 설명되어 있습니다 -
-
문자열의 배열과 문자열에 대한 포인터의 배열에서 2차원 문자 배열의 연결을 해제합니다. 저장을 위한 고정 메모리 크기는 없습니다.
-
문자열은 필요한 만큼만 바이트를 차지하므로 공간 낭비가 없습니다.
예시
문자열에 대한 포인터 배열과 주소를 인쇄하는 개념을 보여주는 C 프로그램은 다음과 같습니다. -
#include<stdio.h> #include<string.h> void main(){ //Declaring string and pointers, for loop variable// int i; char *a[5]={"One","Two","Three","Four","Five"}; //Printing values within each string location using for loop// printf("The values in every string location are : \n"); for(i=0;i<5;i++){ printf("%s\n",a[i]); } //Printing addresses within each string location using for loop// printf("The address locations of every string values are : \n"); for(i=0;i<5;i++){ printf("%d\n",a[i]); } }
출력
위의 프로그램이 실행되면 다음과 같은 결과가 생성됩니다 -
The values in every string location are: One Two Three Four Five The address locations of every string values are: 4210688 4210692 4210696 4210702 4210707
예시 2
다른 예를 살펴보겠습니다.
아래는 string −
에 대한 포인터 배열의 개념을 보여주는 C 프로그램입니다.#include<stdio.h> #include<string.h> void main(){ //Declaring string and pointers// char string[10]="TutorialPoint"; char *pointer = string; //Printing the string using pointer// printf("The string is : "); while(*pointer!='\0'){ printf("%s",*pointer); pointer++; } }
출력
위의 프로그램이 실행되면 다음과 같은 결과가 생성됩니다 -
The string is: TutorialPoint