반응형
포인터 증감 연산
포인터 변수에 저장된 값에 대해서 증감연산을 진행할 수 있다.
곱셈 나눗셈등등은 불가하다.
(type)형 포인터 변수 대상의 증감 연산 시 sizeof(type)의 크기만큼 증감이 된다.
아래의 코드를 보면 ptr++, ptr-- 증감연산자가 값에 영향을 끼치는게 아니라
주소에 영향을 끼치는 것을 알 수 있습니다!
int arr[3] = {10, 20, 30};
int* ptr = arr;
printf("%d %d %d \n", *ptr, *(ptr+1), *(ptr+2)); // 10 20 30 출력
printf("%d ", *ptr); // 10 출력
ptr++;
printf("%d ", *ptr); // 20 출력
ptr++;
printf("%d ", *ptr); // 30 출력
ptr--;
printf("%d ", *ptr); // 20 출력
ptr--;
printf("%d ", *ptr); // 10 출력
즉, 결론은 arr이 포인터 변수의 이름이건 배열의 이름이건
arr[i] == *(arr+i) == *(ptr+i) 이렇게 사용할 수 있다
*(arr+i) => 포인터 연산자안의 괄호에서의 연산은
정수끼리의 연산이 아니라 주소의 연산이라고 생각하면 된다.
반응형
반응형
'C' 카테고리의 다른 글
| 포인터와 함수 이해 (0) | 2023.05.15 |
|---|---|
| 포인터 배열 (0) | 2023.05.15 |
| 포인터와 배열의 관계 (0) | 2023.05.15 |
| 문자열에 대해서! (0) | 2023.05.15 |
| C언어의 꽃 포인터! (0) | 2023.05.14 |