본문 바로가기
문법관련/C

14.2 포인터 배열

by print_soo 2024. 8. 7.

포인터 배열

포인터 복습

char *ap = "dog";
char *bp = "elephant";

100                     ap 
 ['d'|'o'|'g'|'\\0'] <-- [100]
 : dog을 담고있는 메모리 주소를 갖고있는 ap 변수
 
 200                     bp 
 ['e'|'l'|'e'|'p'|'h'|'a'|'n'|'t'|'\\0'] <-- [200]
 : elephant을 담고있는 메모리 주소를 갖고있는 bp 변수

----------------------------------------

배열에서 주소가져오는 법

int a[3] = [1, 2, 3];
int *ap = a; //a의 시작 주소값을 저장

 

포인터 배열의 예시

 

 

 

 

 

포인터를 배열로 만들면 좋은점?

→ 반복문 사용으로 여러 포인터에 접근이 가능해진다.
→ 즉, 반복문으로 다른 배열 여러 개를 한번 접근할 수 있다.

 

 

 

 

 

위의 그림처럼 ap라는 포인터 배열이 있고, 각각 a, b, c라는 배열이 있다고 했을 때 각각 포인터 배열에 각 배열의 시작 주소를 넣으면 아래와 같아진다.

 

 

 

이렇게 포인터 배열이 만들어지면 각각의 다른 배열의 요소에 간단한 반복문을 통해 접근이 가능하다. 

for(i=0; i<3; i++){
	printf("%d", ap[i]);
}

//1234511121314152122232425


for(i=0; i<3; i++){
	for(j=0; j<5; j++){
    	printf("%d", ap[i][j]);
    }
    printf("\n");
}
// 12345
// 1112131415
// 2122232425

'문법관련 > C' 카테고리의 다른 글

14.1 다차원 배열  (0) 2024.08.07
13. 변수  (0) 2024.07.04
12.2 문자열 연산함수  (0) 2024.06.27
12.1 문자열과 포인터  (0) 2024.06.26
11.3 getchar(), putchar()  (0) 2024.06.26