티스토리 뷰

포인터 배열 기초

      1차원 포인터 배열
    • 주소를 저장하는 배열
    • 데이터형* 배열명[배열 크기];
    • int* arr[5]; 크기가 5인 int*형 배열을 선언함
int a = 10, b = 20, c = 30, d = 40, e = 50;
int* arr[5] = {&a, &b, &c, &d, &e};
int i;
for( i = 0 ; i < 5 ; i++ )
printf(“%d”, *arr[i]) ; arr[i]는 int*형이므로 간접 참조 연산자를 사용할 수 있음

    2차원 포인터 배열
  • 포인터 배열의 각 원소에 배열의 시작 주소를 저장
  • 데이터형* 배열명[배열 크기];
  • int* arr[5]; 크기가 5인 int*형 배열을 선언함
int x[3] = {1, 2, 3};
int y[3] = {4, 5, 6};
int z[3] = {7, 8, 9};
int* arr[3] = {x, y, z}; //포인터 배열의 원소를 int 
//배열의 시작 주소로 초기화함

for( i = 0 ; i < 3 ; i++ ){
	for( j = 0 ; j < 3 ; j++ )
    	printf(“&d”, arr[i][j]);
	printf(“\n”);
}
//arr[i]가 int 배열의 시작 주소로 초기화되었을 때, 
//arr[i]가 가리키는 배열의 원소에 접근하려면 arr[i][j]라고 씀
    구조체 포인터 배열
  • 구조체 배열은 메모리를 많이 사용하므로 비효율적임
  • 데이터형* 배열명[배열 크기];
  • 구조체 포인터 배열은 구조체를 이용하는 것보다 메모리 사용 측면에서 더 효율적임

'스마트웹 개발2021 > 프로그래밍 언어활용' 카테고리의 다른 글

어플리케이션 구현  (0) 2021.08.01
전처리기  (0) 2021.08.01
스토리지 클래스  (0) 2021.08.01
함수의 인자  (0) 2021.08.01
공용체와 열거체  (0) 2021.07.31
댓글