[Data Structure] 포인터와 배열

KingU·2021년 12월 7일

Data Structure

목록 보기
1/5
post-thumbnail

포인터와 배열

🌟 관계:

포인터와 배열은 매우 연관


배열의 이름 without 변경할 수 없는 상수 == 포인터
상수 포인터 == 상수를 가르키는 포인터





📚 사용법:

포인터에 배열의 이름을 대입한 후, 포인터를 배열의 이름처럼 사용


int arr[3] = {10, 20, 30}; // 배열 선언

int* ptr_arr = arr;        // 포인터에 배열의 이름을 대입함  

 

printf("배열의 이름을 이용하여 배열 요소에 접근 : %d %d %d\n", arr[0], arr[1], arr[2]);

printf("포인터를 이용하여 배열 요소에 접근 : %d %d %d\n", ptr_arr[0], ptr_arr[1], ptr_arr[2]);  

printf("배열의 이름을 이용한 배열의 크기 계산 : %d\n", sizeof(arr));

printf("포인터를 이용한 배열의 크기 계산 : %d\n", sizeof(ptr_arr));  


결과값

배열의 이름을 이용하여 배열 요소에 접근 : 10 20 30

포인터를 이용하여 배열 요소에 접근 : 10 20 30

배열의 이름을 이용한 배열의 크기 계산 : 12

포인터를 이용한 배열의 크기 계산 : 8



➕ 연산:

배열의 이름으로 포인터 연산을 수행하여 각각의 배열 요소에 접근하여 연산


int arr[3] = {10, 20, 30}; // 배열 선언  

printf("배열의 이름을 이용하여 배열 요소에 접근 : %d %d %d\n", arr[0], arr[1], arr[2]);

printf("배열의 이름으로 포인터 연산을 해 배열 요소에 접근 : %d %d %d\n", *(arr+0), *(arr+1), *(arr+2));



결과값

배열의 이름을 이용하여 배열 요소에 접근 : 10 20 30

배열의 이름으로 포인터 연산을 해 배열 요소에 접근 : 10 20 30

arr이 배열의 이름이거나 포인터이고 n이 정수일 때,
arr[n] == (arr + n)*




포인터 배열

배열의 요소로 포인터 변수를 가지는 배열



📚 사용법:


int i, arr_len;

int num01 = 10, num02 = 20, num03 = 30;

int* arr[3] = {&num01, &num02, &num03}; // int형 포인터 배열 선언  

 

arr_len = sizeof(arr)/sizeof(arr[0]);

for (i = 0; i < arr_len; i++)

{

    printf("%d\n", *arr[i]);

}  


결과값

10

20

30






당신의 시간이 헛되지 않는 글이 되겠습니다.
I'll write something that won't waste your time.

profile
원하는 것을 창조하고 창조한 것을 의미있게 사용하자

0개의 댓글