[Data Structure] 포인터와 배열

KingU·2021년 12월 7일
0

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개의 댓글

관련 채용 정보