C언어 프로그램 포인터 배열
C언어 프로그램 포인터 배열
■ 포인터도 변수이다. 데이터가 저장된 메모리의 주소를 저장하는 변수이기 때문에 포인터도 배열을 선언할 수 있으며 선언 방식은 다음과 같다.
int * aaa[10];
double * bbb[20];
이렇듯 선언하는 방법은 일반 변수의 배열을 선언하는 방법과 같다. 이렇게 배열로 선언된 포인터를 이용하는 예제를 간단히 만들어본다.
▲ int형 변수 su1~su4까지 각각 값들을 초기화하고 이 변수들의 주소 값을 저장할 arr 포인터 변수의 배열을 선언하고 있으며 각 주소 값으로 초기화 하고 있다. 그리고 * 연산자로 각각의 요소에 접근해서 저장된 값을 출력하고 있는 내용인데 프로그램을 실행하면 각각의 변수에 저장된 값이 순서대로 출력되는 걸 확인할 수 있다. 이처럼 포인터도 배열로 선언할 수 있는 것이다.
그렇다면 문자열을 저장하는 포인터는 어떤 형식일까?
문자열을 저장하는 배열은 char형 포인터 배열인데 다음과 같은 형식이다.
char * str[5];
이 형식으로 예제를 만들어서 활용하는 과정을 살펴본다.
▲ char형 포인터 str 배열을 선언하고 큰따옴표로 각각의 문자열을 초기화 하고 있는데 C언어에서 큰따옴표를 묶어서 문자열을 선언하면 해당 데이터가 메모리에 저장된 후 자동으로 그 주소 값을 반환하게 된다. 즉 위 예제는...
char * str[4]={AAA주소값, BBB주소값....};와 같은 형식이 되는 것이다. 그렇기 때문에 바로 str[i]로 접근해서 저장된 값들을 확인할 수 있다.