티스토리 뷰

배열포인터 처리

#포인터 배열 기초

1. 1차원 포인터 배열
주소를 저장하는 배열

형식 : 데이터형 *배열명[배열크기];
int*arr[5]; -> 크기가 5인 인트형 배열

포인터 배열의 각원소로 변수의 주소를 저장함
배열의 각원소가 포인터형이므로, 원소가 가리키는 변수에 접근하려면 배열의 원소 앞에 간접 참조 연산자 *을 사용해야함

2. 2차원 포인터 배열
포인터 배열의 각원소에 배열의 시작 주소를 저장

arr[i]가 int배열의 시작 주소로 초기화 되었을 때, arr[i]가 가리키는 배열의 원소에 접근하려면 arr[i][j]라고 씀

for(i = 0; i < 3; i++) {
    for(j=0; j < 3; j++) {
      printf("&d", arr[i][j])
    }
}

# 고급 포인터 배열 기술

1. 구조체 포인터 배열
구조체 배열은 메모리를 많이 사용하므로 비효율적임
구조체 포인터 배열을 이용하면 구조체는 동적 메모리에 할당하고 그주소만 포인터 배열에 넣어두고 사용할 수 있음
STUDENT std[100] -> 4000byte
STUDENT* std[100] -> 400byte

구조체 포인터 배열의 메모리 구조

2. 2차원 배열포인터 처리
행 단위 포인터 변수
데이터형(*포인터명)[배열크기];

int arr [3][5] = {
   {1,2,3,4,5},
   {6,7,8,9,10},
   {11,12,13,14,15}
}

int (*p[5]) = &arr[0]

배열에 대한 포인터를 &arr[0]으로 초기화하는 대신, 간단하게 arr로 초기화 할수 있음
배열에 대한 포인터p로 이차원 배열의 원소에 접근하려면 p가 마치 이차원 배열명인 것처럼 2개의 인덱스를 사용하면 됨

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

애플리케이션 구현  (0) 2021.08.05
전처리기  (0) 2021.08.05
스토리지 클래스  (0) 2021.08.05
함수의 인자  (0) 2021.08.05
공용체와 열거체  (0) 2021.08.05
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/09   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30
글 보관함