728x90
반응형
포인터 배열과 포인터 배열의 포인터 형
1차원 배열의 포인트 형은 배열의 첫번째 요소의 자료형에 따라 결정된다.
1차원 포인터 배열도 마찬가지이다.
int * intarr[20];
double * dbarr[10];
위에서 선언된 배열 intarr의 첫번째 요소는 int형 싱글포인터이다.
따라서 배열 intarr의 포인터 형은 int형 더블포인터가 된다.
마찬가지로 배열 dbarr는 double형 싱글포인터를 요소로 가지므로 double형 더블포인터가 된다.
int num1=10, num2=20, num3=30;
int * ptr1=&num1;
int * ptr2=&num2;
int * ptr3=&num3;
int * ptrArr[3]={ptr1, ptr2, ptr3};
int **pptr=ptrArr;
printf("ptr1=%d ptr2=%d ptr3=%d", *(pptr[0]), *(pptr[1]), *(pptr[2]));
return 0;
위 코드를 통해 싱글포인터를 배열의 요소로 갖는 포인터 배열의 포인터 형이 더블포인터임을 확인할 수 있다.
int형 변수 num1, num2, num3 선언 후 포인터 변수 ptr1, ptr2, ptr3에 각각 주소를 전달한다.
==> int형 포인터 배열 ptrArr 선언 후 ptr1, ptr2, ptr3를 요소로 선언한다.
==> 더블 포인터인 pptr 선언 후 ptrArr를 전달한다.
==> 포인터 변수 pptr을 사용하여 배열 내용 출력함.
위 코드의 7행에서 ptrArr을 pptr에 대입하는 과정에서 오류가 발생하지 않는다.
이는 ptrArr과 pptr의 포인터형이 같음을 의미한다.
배열을 출력하는 10행에서는 포인터 변수를 배열명 대신 사용할 수 있으므로 pptr을 사용하여 출력하였다.
728x90
반응형
'C' 카테고리의 다른 글
이중 포인터 (0) | 2022.09.22 |
---|---|
C 다차원 배열 (2) | 2022.09.20 |
C 공부 12일차 Chapter 14 포인터 대상 const 선언의 두가지 형태 (0) | 2022.09.17 |
C 공부 11일차 Chapter 14 함수 호출 방식 Call-by-value, Call-by-reference (2) | 2022.09.16 |
C 공부 10일차 Chapter 14 함수와 포인터 (0) | 2022.09.15 |